理由这属于ServerFault,而不是StackOverflow – 我已经有我的程序获取的价值,我查询返回的价值,是什么意思。
我有一个内部程序审计我们的公司电脑,其中检查的事情之一是处理器的速度。 为此,它查询Win32_Processor WMI类并获取CurrentClockSpeed的值。
我们今天在玩数据,发现一些反常的报告,例如CurrentClockSpeed表示1.0GHz,而CPU名称表示Intel(R)Core(TM)2 CPU T5600 @ 1.83GHz [确认事实上是1.83GHz])。 我在互联网上做了一些挖掘,发现这个博客文章可能解释发生了什么事情。
我最初的想法是,我可以改变程序,而不是获取MaxClockSpeed而不是CurrentClockSpeed的价值,但微软的文档没有明确定义这将返回。 我的意思是,这会返回一个值,这个值是它的实际最大速度(比如是否超频),但它通常不会运行,还是会返回我期望的值,这是它在正常情况下的最大速度不超频)条件?
现在的处理器对于他们所需要的东西相当聪明,特别是在笔记本电脑中。 仅仅因为处理器是1.83Ghz,如果不需要额外的功率,它可能会决定通过以较低的时钟速度运行来节省功率(和热量)。
您可以通过转到Windows任务pipe理器来查看这个区别。 在Vista和Windows 7中更清晰,但事实仍然存在于XP中。 你会看到你的处理器速度被列出两次。 当我的机器全功率运行时,它说:
Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz 2.20GHz
但是,当我的电池电量不足时,显示:
Intel(R) Core(TM)2 Duo CPU T7500 @ 2.20GHz 1.80GHz
所以基本上,你链接的艺术是正确的。 我期望MaxClockSpeed将始终返回相同的值(在我的情况下,2.20GHz,因为这是由BIOS报告)。
在超频方面,超频CPU的BIOS会恢复理论上的最高速度,所以如果你超频到2.0GHz到2.4GHz,那么它会报2.4GHz。