高精度计时器类

来源:互联网 发布:centos企业邮箱搭建 编辑:程序博客网 时间:2024/05/29 16:43

由来

今天测试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 msprotected: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);}

调用很简单,就不写了

0 0
原创粉丝点击