我正在尝试提高游戏中的 CPU 性能,为此我想尝试为其提供 2-4 个 CPU 核心,这些核心仅运行该应用程序,而不运行任何与 Windows 相关的服务。我是否可以在计算机上为所有应用程序、服务、进程等设置默认亲和性,以便核心实际上根本不被使用?
答案1
在 powershell 中:
$instances = Get-Process
foreach ($i in $instances) { $i.ProcessorAffinity=1 }
将使大多数进程在第一个核心(任务管理器中的核心 0)上运行。是的,对于无法更改亲和性的进程,它将抛出相当多的“拒绝访问”错误。只需忽略它...其余部分都可以正常工作。
然后手动或使用命令将游戏设置为所需的核心,例如:
(Get-Process -name doom).ProcessorAffinity = 14
将您的“毁灭”游戏设置为在 4 核 CPU 的剩余 3 个核心上运行。
答案2
强制 Windows 仅在一个核心上运行应用程序的其他几种方法已得到解答这里。这样可以为游戏释放其他三个核心。如何通过 taskmgr 或 cmdline 手动设置此核心的亲和力?Keltari 回答了可能存在性能瓶颈的其他有用提示。
答案3
这可以是部分需要大量手动劳动才能完成。您可以通过任务管理器或命令行设置处理器亲和性。请参阅此文章如何做到这一点。不幸的是,这种方法不适用于服务。
但是,我认为这不会对你有太大帮助。在游戏中,操作系统在 CPU 方面并没有做太多事情。当然,这是假设你没有同时执行其他任务,但你不会这样做,因为你在抱怨性能。玩游戏时,你所有的核心是否都达到 100% 的最大值?我对此表示怀疑。你的性能损失很可能不是 CPU 限制,而是其他因素,例如图形和/或磁盘。你需要运行性能监视器(如 Windows 的 perfmon)才能真正了解是什么让你的速度变慢了。