【发布时间】:2016-01-05 23:17:32
【问题描述】:
我想调整 CPU 频率,换句话说,在 windows 中寻找用于频率缩放的 API 或 c++ 代码?
【问题讨论】:
-
在您提出要求之前,您应该考虑这种 API 在多处理操作系统上的语义,在这种操作系统中,您所追求的代码大概是在用户空间中运行的。
-
这并不是你在用户模式下可以做的事情......通常这是通过内核模式驱动程序实现的。您可以采取一些措施来降低 CPU 扩展的可能性,但除此之外,您就没有运气了
-
您还应该考虑这样一个事实,尽管您的意图是最好的,但降低 CPU 频率实际上可能会增加功耗。有代码运行时 CPU 频率最大化,无代码运行时 CPU 频率最小化,性能最佳。换句话说:运行代码通常是全速最有效的。因此,几乎只有调度程序和电源/热管理层具有有效切换 CPU 频率所需的知识。你,在用户区,不要也不会。
-
我正在计划构建一个程序来测量 CPU 利用率,并在此基础上降低 CPU 频率以降低功耗..
-
正如我之前所说:降低 CPU 频率将使 CPU 在活动状态下运行的时间比在非活动状态下运行的时间长,并且在许多 CPU 上它将增加功耗。无论如何,您的“程序”都需要是内核驱动程序,因为内核中唯一真正实时的 CPU 利用率信息是可用的,至少在 Windows、Linux 和 OS X 上是这样。