我在Windows(7)中找到确定CPU频率的可靠方法时遇到了一些麻烦。
我尝试过使用Perfmon,但它的最大采样频率为1 Hz。另外,我没有内核级访问权限,所以我不能使用机器专用寄存器。有许多C函数可以确定处理器的最大频率,但SpeedStep和Turbo Boost使这些方法不可靠,因为我尝试过使用片上定时器,它以恒定速率运行,因此不会t反映了可变处理器频率。
我知道像CPU-Z这样的程序能够直接测量CPU频率,但我不知道他们实际上是如何做到这一点的。任何帮助非常赞赏!
编辑:我也一直在研究使用ACPI监控CPU P状态的可能性......这是一个选项吗?
Edit2:我目前正在研究使用机器专用寄存器(http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.pdf)来获取这些信息......我觉得这对解决方案来说可能有点过头了,但它是最好的导致我现在已经有了。
答案 0 :(得分:1)
我能够通过分析aperf和mperf rato的Windows驱动程序确定CPU频率,如以下链接所示:Hardware Processor Counters Incorrectly Resetting
答案 1 :(得分:0)
请检查this链接。