win下精确计时, 有二种方法,精度不同代码如下:
DWORD startTime = GetTickCount();
// do something
DWORD totalTime = GetTickCount() - startTime;
根据MSDN,此方法的精确度为10-16ms
// 取得时钟频率
LARGE_INTEGER litmp ;
QueryPerformanceFrequency(&litmp);
LARGE_INTEGER start;
QueryPerformanceCounter(&start) ;
//do something
LARGE_INTEGER end;
QueryPerformanceCounter(&end) ;
double dTotalTime = (double)(end.QuadPart-start.QuadPart) / (double)litmp.QuadPart; //秒Linux下精确计时,代码如下:
//此方法精度可达到微妙级
#include <sys/time.h>
struct timeval startTime,endTime;
float Timeuse;
gettimeofday(&startTime,NULL);
gettimeofday(&endTime,NULL);
Timeuse = 1000000*(endTime.tv_sec - startTime.tv_sec) + (endTime.tv_usec - startTime.tv_usec);
Timeuse /= 1000;//毫秒
printf("Timeuse = %f\n",Timeuse);
本文详细对比了Windows和Linux系统下实现精确计时的两种方法,包括使用GetTickCount()函数和QueryPerformanceCounter()函数,以及它们各自在不同环境下的应用与精确度解析。

350

被折叠的 条评论
为什么被折叠?



