HPET可以在Windows中直接访问吗?

Pro*_*mit 11 windows winapi timer

我想将高性能事件计时器(HPET)用于分析工具,以便快速进行高精度测量.timeGetTime在1ms时没有提供足够的分辨率,而QueryPerformanceCounter每次读取的速度比我想要的慢得多.我在研究这个问题时遇到了HPET,但我看不到任何关于如何实现它的样本.

那么我可以直接使用它(组装很好),还是我必须依赖Win32 API中内置的多媒体/高性能计时工具?

lep*_*pie -2

我在四处挖掘时发现了此信息,看来这可能是最具成本效益的方法。当我有勇气深入了解汇编时,我会尝试一下。:)

更新

我用我的分析器对此进行了测试。虽然快了一点,但似乎我还有大量其他开销:((我没有费心时间,因为我似乎没有足够的好处)

  • 如果有人偶然发现这一点,具有 CPUID 设置的 TSC 不变位的现代进程可以安全地使用 RDTSC,而无需亲和力,并且不存在 Speed Step 或睡眠状态或任何干扰 TSC 速率的风险。 (8认同)
  • 不!不要使用 RDTSC,它会在多核机器上做奇怪的事情。每个核心都有自己的计数器,可以产生诸如采用负时间的函数等效果。时间戳计数器并不总是同步!去过也做过。 (3认同)