C++ 高精度计时器:避免频繁调用 QueryPerformanceCounter()
您可以使用计时器类来实现精度和避免不必要的调用。这个类可以使用 'QueryPerformanceCounter()' 来获取时间戳,并计算时间间隔。以下是一个简单的计时器类的示例代码:
class Timer
{
public:
Timer()
{
QueryPerformanceFrequency(&m_frequency);
Reset();
}
void Reset()
{
QueryPerformanceCounter(&m_startTime);
}
double GetElapsedSeconds()
{
LARGE_INTEGER endTime;
QueryPerformanceCounter(&endTime);
return static_cast<double>(endTime.QuadPart - m_startTime.QuadPart) / m_frequency.QuadPart;
}
private:
LARGE_INTEGER m_frequency;
LARGE_INTEGER m_startTime;
};
使用这个计时器类,您可以像这样测量时间:
Timer timer;
// Do some work here
double seconds = timer.GetElapsedSeconds();
每次您需要测量时间时,只需创建一个计时器对象并调用 'Reset()' 方法即可开始计时。在需要测量时间的时间段结束时,只需调用 'GetElapsedSeconds()' 方法即可获取经过的时间。
原文地址: https://www.cveoy.top/t/topic/njzh 著作权归作者所有。请勿转载和采集!