vc对程序段计时
1、使用:GetTickCount()需要包含Mmsystem.h,Windows.h,加入静态库Winmm.lib.
方法
DWORD startTime,endTime;
startTime = GetTickCount();
Sleep(100);
endTime = GetTickCount();
int mm = endTime - startTime;
这种方法的误差大约是5ms,经过测试,mm大约是94ms甚至是110ms。结果出来就是ms;
2、使用timeGetTime(),加上timeBeginPeriod(1)和timeEndPeriod(1)可以保证精确度为1ms
timeBeginPeriod(1);
DWORD start = timeGetTime();
timeEndPeriod(1);
精度:毫秒,与GetTickCount()相当。但是和GetTickCount相比,timeGetTime可以通过timeBeginPeriod,timeEndPeriod设置定时器的最小解析精度, timeBeginPeriod,timeEndPeriod必须成对出现。
3、高精度时控函数QueryPerformanceFrequenc
使用:LARGE_INTEGER m_nFreq;
频数除以周期=n (秒),所以乘以1000为ms,所以m_dtime的是以ms为单位的。
注意:nEndTime.QuadPart都是LONGLONG类型的,如果相除不强制转换double,则会截断成整型。