您的位置:首页 > 其它

高精度计时器类

2015-10-15 14:45 162 查看

由来

今天测试GDI、Direct2D绘图性能时,发现GetTickCount()函数的精度只有15ms左右,而绘制10000个随机点线段所需时间大概也为几十ms,误差比较大,找了下原来有更高精度(1ms)的多媒体定时器可以调用,因此记录下来。

测试平台

Win10 x64

VS 2010 32位对话框工程

代码

class HClock
{
public:
HClock();
~HClock();
public:
void StartClock(void);
void EndClock(void);
double GetTime(void);//in ms
protected:
private:
LARGE_INTEGER nFreq;
LARGE_INTEGER nStart;
LARGE_INTEGER nEnd;
};

HClock::HClock()
{

}

HClock::~HClock()
{

}

void HClock::StartClock(void)
{
QueryPerformanceFrequency(&nFreq);
QueryPerformanceCounter(&nStart);
}
void HClock::EndClock(void)
{
QueryPerformanceCounter(&nEnd);
}
double HClock::GetTime(void)
{
return(1000.0*(double)(nEnd.QuadPart-nStart.QuadPart)/(double)nFreq.QuadPart);
}


调用很简单,就不写了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息