代码之家  ›  专栏  ›  技术社区  ›  Promit

在Windows中是否可以直接访问hpet?

  •  11
  • Promit  · 技术社区  · 15 年前

    我想使用高性能事件计时器(hpet)作为一个分析工具来快速进行非常高精度的测量。TimeGetTime在1毫秒时无法提供足够的分辨率,而QueryPerformanceCounter每次读取的速度比我希望的慢得多。我在研究这个问题的时候遇到了hpet,但是我看不到任何关于如何实际获得它的样本。

    因此,我可以直接使用它(程序集很好),还是必须依赖已经内置在win32 api中的多媒体/高性能计时工具?

    2 回复  |  直到 6 年前
        1
  •  -2
  •   leppie    15 年前

    this info 在挖掘的时候,这似乎是最划算的方法。当我有胆量去钻研装配时,我会试试的。:)

    更新

    我用我的分析器测试了这个。虽然速度有点快,但似乎我还有很多其他开销:(我没有考虑时间安排,因为它似乎没有足够的好处)

        2
  •  1
  •   darda    15 年前

    我也有兴趣使用hpet,但作为计时器。据我了解,queryperformanceCounter和queryperformanceFrequency实际上正在访问hpet的计数器和时钟,这在Windows XP下工作(例如,请参见, http://www.geisswerks.com/ryan/FAQS/timing.html )

    至于计时代码,我认为通过使用queryperformanceCounter,您实际上可以访问构成hpet基础的计数器,而这一切都存在于芯片组(而不是处理器)中。