win32 api函数可以获得处理器的当前速度

Ses*_*ame 10 c++ winapi visual-c++

我不知道用于查询本地PC处理器当前速度的win32 api函数/函数.我希望不要使用WMI,因为它似乎不太适用于所有PC.

小智 13

您可以使用参数ProcessorInformation 调用Windows API函数CallNtPowerInformation.它返回一个PROCESSOR_POWER_INFORMATION结构,告诉您每个系统CPU的当前和最大CPU速度.

但是,这仅在Win32桌面上支持,而不是Metro或Windows Phone.


Fre*_*abe 2

您(通常)可以使用该函数获取处理器速度QueryPerformanceFrequency。我说“通常”是因为该函数返回系统性能计时器组件的频率,但实际上所有当前可用的 CPU 都以与性能计时器组件相同的频率运行。

该功能自 Windows 2000 起就可用,因此当今大多数 PC 很可能都支持该功能。

  • “几乎所有当前可用的 CPU 都以与性能计时器组件相同的频率运行。” [文档](https://msdn.microsoft.com/en-ca/library/windows/desktop/dn553408(v=vs.85).aspx) 声称:“在许多情况下,QueryPerformanceFrequency 返回 TSC 频率除以1024;而在 Hyper-V 上,当来宾虚拟机在实现虚拟机管理程序版本 1.0 接口的虚拟机管理程序下运行时,性能计数器频率始终为 10 MHz。” 似乎“除以 1024”的情况对于我的系统来说是正确的,特别是。所以这看起来不太可靠:( (3认同)