需要对"高清时间戳"进行一些澄清。 (win32,direct3d,性能指标)

时间:2015-08-09 17:37:29

标签: c++ winapi

我刚刚阅读了解释QueryPerformanceCounter方法的文档以及解释High resolution time stamps用法的文档。这些文件对这些方法的使用有很好的解释。

但我对性能指标有一些疑问。有关计数器的文档详细说明了它使用硬件计数器以恒定速率计算滴答数。

我的问题是他们的意思是什么?" ticks"?滴答滴答只是系统定时器的一部分吗?

1 个答案:

答案 0 :(得分:1)

A" tick"是一个时间单位,是计数器的最小增量。正如您阅读的文章指出的那样,刻度的确切长度取决于硬件。您需要通过除以QueryPerformanceFrequency()将两个tick值之间的差异转换为秒。大致是:

LARGE_INTEGER startTick, endTick, totalTicks, frequency;
QueryPerformanceCounter(&startTick);
// Do stuff
//...
QueryPerformanceCounter(&endTick);
totalTicks.QuadPart = endTick.QuadPart - startTick.QuadPart;
QueryPerformanceFrequency(&frequency);
double seconds = static_cast<double>(totalTicks.QuadPart) / frequency.QuadPart;