首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

想判断执行一个函数需要多长时间,应该如何做

2012-02-19 
想判断执行一个函数需要多长时间,应该怎么做?如果读系统时间,计算差值的话,只能精确到秒阿~谢谢了,又知道

想判断执行一个函数需要多长时间,应该怎么做?
如果读系统时间,计算差值的话,只能精确到秒阿~

谢谢了,又知道得么?

用C实现



[解决办法]
SYSTEMTIME time;
GetSystemTime(&time);

可以精确到毫秒
[解决办法]
inline unsigned __int64 GetCycleCount()
{
__asm _emit 0x0F
__asm _emit 0x31
}

精确到 CPU 时钟周期
[解决办法]
gettimeofday

main()
{
struct timeval tpstart,tpend;
long iTimeInterval;
gettimeofday(&tpstart,NULL);

/* to do what you want*/

gettimeofday(&tpend,NULL);
iTimeInterval=1000000 * (tpend.tv_sec - tpstart.tv_sec);
iTimeInterval += tpend.tv_usec - tpstart.tv_usec;
/*iTimeInterval 就是微妙级的时间跨度*/
}



其中struct timeval的结构是
long tv_sec; /* seconds since Jan. 1, 1970 */
long tv_usec; /* and microseconds */


精确到纳秒
[解决办法]
简单方法:

#include <stdio.h>
#include <time.h>

int main()
{
clock_t start,end;
int i,j;
int a;
start = clock();
//测试程序段////////////////////
for (i=1; i <=1001; i++)
{
a=0;
for (j=1; j <=1000; j++)
{
a++;
}
}
/////////////////////////////////
end = clock();
printf( "时间%lf秒\n ", (double)(end-start)/CLOCKS_PER_SEC);
return 0;
}

热点排行