Linux下计算程序运行时间的两种方法

转自:http://hi.baidu.com/starflier/item/14057315de8fb8cc38cb30bb


有时候我们需要计算程序运行的时间,比如我们要对算法进行效率分析,分析它的时间复杂度,需要分析时间。在linux下有下面两种计算程序运行时间的方法:

方法一:

#include  
int gettimeofday(struct timeval *tv,struct timezone *tz); 
strut timeval { 
long tv_sec; /* 秒数 */ 
long tv_usec; /* 微秒数 */ 
}; 
//gettimeofday将时间保存在结构tv之中,tz一般我们使用NULL来代替。
#include
#include
#include  
void function() 

unsigned int i,j; 
double y; 
for(i=0;i<1000;i++) 
for(j=0;j<1000;j++) 
y=sin((double)i); 

main() 

struct timeval tpstart,tpend; 
float timeuse; 
gettimeofday(&tpstart,NULL); 
function(); 
gettimeofday(&tpend,NULL); 
timeuse=1000000*(tpend.tv_sec-tpstart.tv_sec)+ tpend.tv_usec-tpstart.tv_usec; //该时间单位为微妙
timeuse/=1000000; //将微妙的时间换算为妙
printf("Used Time:%fn",timeuse); 
exit(0); 
}

   这个程序输出函数function()的执行时间,我们可以使用这个来进行系统性能的测试,或者是函数算法的效率分析。在我机器上的一个输出结果是: Used Time:0.556070

第二种方法:

在执行程序前,加time,如:输入time./abc

但这种方法只能计算整个程序执行的时间,如果需要计算程序中某个函数或者子程序的执行时间还得使用第一种方法。



你可能感兴趣的:(Linux)