我有 Win8.1 和具有 2(4)(逻辑)个核心的 Intel CPU。
但是:Windows 仅使用 1 个核心。任务管理器显示第一个 CPU 始终处于 100% 状态;其他 CPU 大多处于空闲状态。
经过几个小时的搜索,我才发现 Windows 将每个进程的亲和性设置为 CPU0。在任务管理器中,我可以将任何进程的亲和性重置为任何其他 CPU(或所有 CPU),但在我的另一台计算机上也没有必要这样做。
除了 msconfig 之外还有其他想法吗(在互联网上经常听说,但它不能解决我的问题。Windows 知道其他 CPU,只是没有使用它们)?
答案1
请阅读此链接心灵调试
这个 Powershell(以管理员身份运行)脚本可能有助于发现哪些进程具有亲和性设置。
get-process | Select Name,ProcessorAffinity
对于具有 HT 的双核处理器,此脚本至少可以临时将掩码设置为所有可用(1+2+4+8)处理器 = 15(对于具有超线程的四核处理器,掩码 = 255)
get-process |
Where{ $_.ProcessorAffinity -eq 1} |
Foreach{ $_.ProcessorAffinity = 15 }
答案2
我明白了;一些预装的英特尔软件限制了 CPU。转到“程序和功能”并删除英特尔热平台即可解决问题,重新启动即可解决所有问题。