|
|
C++下获取精确时间值 |
作者:洛羽叶 点击率:3858 发布时间:2012-12-07 |
C++下为了计时获取时间值的方式有两种一种GetTickCount获取16毫秒精度自开机以来的秒数,45天左右重置一次,另外一种精确到微妙的利用系统时钟频率进行计算,性能每秒100000次以上。
long long GetUSTickCount()
{
long long count = 0;
long long current = 0;
BOOL bResult = FALSE;
//获取时钟频率
if (CPUFrequency == 0)
::QueryPerformanceFrequency((LARGE_INTEGER*)&CPUFrequency);
//获取计数值
bResult = QueryPerformanceCounter((LARGE_INTEGER* )¤t);
//某些CPU不支持时直接采用低精度的GetTickCount
if (bResult && CPUFrequency > 0)
count = (long long)(((double)current / CPUFrequency) * 1000 * 1000);
else
count = (long long)::GetTickCount() * 1000;
return count;
}
|
|
|
|
|
|