【发布时间】:2014-04-08 15:55:03
【问题描述】:
我在玩QueryPerformanceFrequency。
它曾经返回3.6 Mhz,但对于我想做的事情来说还不够。
我已使用此命令bcdedit /set useplatformclock true 启用HPET。现在它返回14.3 Mhz。太好了,它更精确……但事实并非如此。我很快意识到我没有得到我期望的粒度。
如果我尝试轮询QueryPerformanceCounter 直到它滴答作响,我能得到的最小增量是11,这意味着1.27Mhz。如果我尝试计算在一秒钟内可以从QueryPerformanceCounter 获得的不同值的数量,我会得到1.26Mhz。
所以我想知道有没有办法真正充分利用14.3 Mhz?
我使用的是 Windows 7,64 位系统,Visual Studio 2008。
【问题讨论】:
-
您测量了调用 QPC 的成本。海森堡在 86 年前就预言,你真的需要这么高的分辨率。尤其是在以用户模式运行代码的多任务操作系统上。
-
你说得对,我没有注意到。所以实际上使用
HPET将频率推到14.3Mhz但是因为它需要~700ns才能阅读它,所以真的没有意义......太好了
标签: c++ windows visual-c++ performancecounter