首页 文章

确定Windows中的CPU频率

提问于
浏览
1

我在Windows中找到确定CPU频率的可靠方法时遇到了一些麻烦(7) .

我尝试过使用Perfmon,但它的最大采样频率为1 Hz . 另外,我没有内核级访问权限,所以我不能使用机器专用寄存器 . 有许多C函数可以确定处理器的最大频率,但SpeedStep和Turbo Boost使这些方法不可靠,因为我尝试过使用片上定时器,它以恒定速率运行,因此不会t反映可变处理器频率 .

我知道像CPU-Z这样的程序能够直接测量CPU频率,但我不知道他们实际上是如何做到这一点的 . 任何帮助是极大的赞赏!

编辑:我也一直在研究使用ACPI来监控CPU P状态的可能性......这是一个选项吗?

编辑2:我目前正在研究使用机器专用寄存器(http://www.intel.com/content/dam/doc/manual/64-ia-32-architectures-software-developer-vol-3b-part-2-manual.pdf)来获取这些信息......我觉得这对解决方案来说可能有点过头了,但它现在已经得到了.1175484 .

2 回答

  • 1

    我能够通过分析aperf和mperf rato的Windows驱动程序确定CPU频率,如以下链接所示:Hardware Processor Counters Incorrectly Resetting

  • 0

    请检查this链接 .

    • 在此链接中,给出了一个带有 application 的简单WDM IOCTL 驱动程序,并提供了很好的解释 . 我能够使用此代码找到频率 . 使用MSR(型号特定寄存器)APERF和MPERF值计算频率 .

相关问题