在 Windows (7) 中找到确定 CPU 频率的可靠方法时我遇到了一些麻烦。
我尝试过使用 Perfmon,但它的最大采样频率为 1 Hz。另外,我没有内核级别的访问权限,所以我不能使用机器特定的寄存器。有许多 C 函数可以确定处理器的最大频率,但 SpeedStep 和 Turbo Boost 使这些方法不可靠,因为我尝试过使用以恒定速率运行的片上定时器,因此不会t 反映可变的处理器频率。
我知道诸如 CPU-Z 之类的程序能够直接测量 CPU 频率,但我不知道它们实际上是如何测量的。非常感谢任何帮助!
编辑:我也一直在研究使用 ACPI 来监控 CPU P-States 的可能性......这是一个选项吗?
Edit2:我目前正在研究使用特定于机器的寄存器(http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-software-developer-vol-3b-part -2-manual.pdf ) 来获取这些信息......我觉得这对于解决方案来说可能有点矫枉过正,但这是我目前获得的最佳线索。