QueryPerformanceCounter 可以取得开机以来64位的时间计数值
QueryPerformanceFrequency 取得计算机每秒钟的计数值,和CPU速度有关
windows在内部维护着一个高精度的计时器,这两个函数就和这个高精度的计时器有关。下面的这个函数简单说明了这两个函数的用法。
//warning C4035: 'RDTSC' : no return value
#pragma warning(disable:4035)
#include <Windows.h>
#include <stdio.h>
int main(int argc, char* argv[])
{
DWORD dwStart = GetTickCount();
dwStart = dwStart/1000;
printf("%d seconds have passed from power on\n",dwStart);
LARGE_INTEGER dwFrequency;
double dwFreq;
QueryPerformanceFrequency(&dwFrequency);
dwFreq = (double)dwFrequency.QuadPart; //获得计数器的时钟频率
LARGE_INTEGER dwCounter;
double dwCount;
QueryPerformanceCounter(&dwCounter);
dwCount = (double)dwCounter.QuadPart; //获得开机以来计数器计算的个数
dwCount = dwCount/dwFreq;
printf("%f seconds have passed from power on\n",dwCount);
return 0;
}
GetTickCount()函数返回的是windows本次开机以来经过的ms数。这两个结果可以对比一下,可以看出是差不多的。
参考:http://www.kumouse.com/?p=52 小杰的博客