读书人

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

发布时间: 2012-02-19 19:43:39 作者: rapoo

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

谢谢了,又知道得么?

用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;
}

读书人网 >C语言

热点推荐