C语言速度优化之指针赋值与if判断
来源:互联网 发布:皮下脂肪怎么减 知乎 编辑:程序博客网 时间:2024/05/01 14:15
最近在写的一个项目需要优化处理速度,我写了一下程序来测试指针赋值与指针判断的速度比较。结果让我大吃一惊。
#include <stdio.h>#include <stdlib.h>#include <time.h> int main(int argc, char *argv[]) { int j; int * tmp; clock_t start = clock(); int i=0; tmp=malloc(sizeof(int *)); for(;i<100000000;i++){ tmp[0]=2324; tmp[1]=32423; tmp[2]=90123; tmp[3]=23421; } clock_t end = clock(); printf("程序运行时间为: %ld ms \n",end - start); start = clock(); i=0; for(;i<100000000;i++){ if(tmp[0]==2356){ j=9089; } if(tmp[1]==234){ j=7812; } if(tmp[2]==2342){ j=2345; } if(tmp[3]==23423){ j=12032; } } end = clock(); printf("程序运行时间为: %ld ms",end - start); return 0;}
结果如下:
程序运行时间为: 296 ms程序运行时间为: 344 ms
我又运行了数次,结果都是前一段程序比后一段程序块40~50ms左右。猜测可能是因为我在for循环中一直赋同样的值,编译器做了相关优化,可是如果那样的,不可能只快40~50ms。
第一小部分的程序主体是:
for(;i<100000000;i++){ tmp[0]=2324; tmp[1]=32423; tmp[2]=90123; tmp[3]=23421; }
第一小部分的程序主体是:
for(;i<100000000;i++){ if(tmp[0]==2356){ j=9089; } if(tmp[1]==234){ j=7812; } if(tmp[2]==2342){ j=2345; } if(tmp[3]==23423){ j=12032; } }
测试环境是 :Dev C++
同样的,每次都访问了指针指向的地址,结果赋值竟然比判断快。
3 0
- C语言速度优化之指针赋值与if判断
- c:if的判断赋值
- C语言里赋值与判断
- C语言之优化运行速度
- C语言指针赋值
- C语言之实际问题——指针赋值
- C语言之指针的初始化和赋值
- 黑马程序员——C语言笔记之if,if....else....,switch判断
- c语言与指针——(二)指针变量的定义与赋值
- 单片机C语言 if与#if
- C语言之数组与指针
- C语言之数组与指针
- c语言基础之指针与函数
- C语言之字符串与指针
- C语言之指针与函数
- C语言之指针与地址
- c语言之指针与数组
- c语言之指针与数组
- 二叉树的先序-中序-后序遍历(一)-循环----绝对白痴好记的方法
- 回溯算法之Anagrams by Stack
- scala学习第一章 基础
- 数据库连接池
- POJ2528 Mayor's posters
- C语言速度优化之指针赋值与if判断
- HDOJ Choose the best route (最短路倒着构图Dijkstra)
- 【mysql教程】怎样测试MySQL安装
- shell中cp命令
- PHP
- DAO的叫話
- ZK Spring 整合View/Controller层属性注入
- android 多类型表单实现
- leetcode之路041 First Missing Positive