您的位置:首页 > 运维架构 > Linux

linux下测试程序运行的时间

2011-11-13 15:02 399 查看
有时候在需要在开发板,对不同类类型的定义测试程序的运行时间,特别是在开发板不支持硬浮点只 

有软浮点的情况下, 对具有大量浮点运算的程序来是说是有必要考虑浮点运算运行效率对程序的影响。在

linux系统下,对时间函数和结构的应用主要是在time.h中,可以通过man time.h联机查看其文件中的结

构和函数的用法,示例代码如下

#include<stdio.h>

#include<time.h>

#include<stdlib.h>

#include<string.h>

#define _INT

int main(int argc, char *argv[])

{

#ifdef _INT

 int i=0;

 int j=0;

#else

 float i=0.0f;

 float j=0.0f;

#endif

 int conut_1=0, conut_2=0;

 double time_diff;

 time_t time_start;

 time_t time_end;

 time_t nowTime; 

 time_t nowEnd;

 struct tm *timenow;

 struct tm *timeend;

 struct timeval tvstart;

 struct timeval tvend;

 int tm_sec_start;

 int tm_sec_end;

 int sec;

 time(&nowTime);

 timenow = localtime(&nowTime);//获取系统时间

 tm_sec_start=timenow->tm_sec;

 printf("local time is %s\n",asctime(timenow));//输出系统时间

 printf("tm_sec_start=%d\n",tm_sec_start);

 gettimeofday(&tvstart,NULL);

 time_start = clock();

 while(conunt_1 < 100000 )

 { 

 

  for (conut_2; conut_2 < 10000;conut_2++)

  {

   i++;

#ifdef _INT

   j = 2;

#else

   j =10.0f;

#endif

   i=(i * j+ j) / j;

  }

 }

 time_end = clock();

 time_diff = (double)(time_end - time_start)/CLOCKS_PER_SEC; //循环运行的时间

 printf("time_diff=%f\n",time_diff);

 gettimeofday(&tvend,NULL);

 sec =(tvend.tv_sec - tvstart.tv_sec)+(tvend.tv_usec - tvstart.tv_usec)/1000000;

 time(&nowTime);

 timenow = localtime(&nowTime);

 tm_sec_end=timenow->tm_sec;

 printf("local time is end%s\n",asctime(timenow));

 printf("tm_sec_end=%d\n",tm_sec_end);

 printf("sec=%d\n",sec);

 return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  linux 测试 null