什么是 Windows Priority 和 Affinity,它提供什么好处?

Jam*_*rtz 12 windows task-manager priority affinity

Priority 和 Affinity 究竟是什么(在任务管理器中找到)以及它们的用途:

在任务管理器中找到

在什么情况下应该/可以使用它们以及在自定义这些设置时发现了哪些优点。

shf*_*301 6

设置关联确实可以做一些事情,但您永远不想使用它。

设置 CPU 关联会强制 Windows 仅使用选定的 CPU(或内核)。如果将关联设置为单个 CPU,Windows 将仅在该 CPU 上运行该应用程序,而不会在任何其他 CPU 上运行。

Windows 会自动将运行的应用程序放在最不忙的处理器上,因此将其限制为单个 CPU 并不能让 Windows 完成其工作。即使 CPU/核心 1 忙于运行其他应用程序,Windows 也无法运行在 CPU/核心 2 上设置了关联的应用程序。

实际上,您想要这样做的唯一原因是运行在多 CPU/核心系统上运行时无法正常工作的旧应用程序。

  • *> 你永远不想使用它。* 不是真的。如果您有一个单线程应用程序,那么它*不能*最大程度地使用 CPU 的线程/内核,并且 Windows 无法强制/欺骗它。如果您有两个单线程应用程序,您可以告诉 Windows 让每个应用程序使用一个单独的线程/核心,这样总 CPU 使用率就不会徘徊在 50-75% 左右,您可以将其最大化到 100%(每个核心被一个程序最大限度地使用)。所以是的,您确实可以使用该设置,但这是大多数人不知道/意识到/需要的特定场景。 (9认同)
  • 如果您有两个单线程应用程序,Windows 将在不同的线程/核心上运行每个应用程序,您将获得 100% 的 CPU 利用率,而无需设置关联。为了进行测试,我只是在我的 4 核机器上运行了 4 个单线程程序实例,并且 CPU 使用率为 100%。Windows 足够智能,可以有效地调度 CPU。 (5认同)

小智 5

在某些场景下这是一个非常有用的功能。假设您有一个多线程应用程序,它要么处于空闲状态,要么在几分钟内积极占用每个 CPU 的 100%,进行搜索、构建等。我们将此应用程序称为“eclipse”。

我们还假设,当您正在开发此应用程序时,您还有许多其他应用程序,它们对 CPU 的要求不高,但本质上都是实时应用程序。例如,当您使用 Eclipse 并且它随机启动构建或进行 gwt 编译时,您还可以使用计算机传输音乐或在浏览器窗口中进行研究(例如,研究构建问题的原因) 。当然,如果你的音乐跳动或浏览器停止响应,你不会死,但这很烦人。

亲和力可以让您做的是将您的 cpu 消耗应用程序限制为 7/8 核,以便保证其他人都可以访问相对未使用的 cpu,并且您不必经常处理卡顿和计算机上其他所有内容可用性的中断当日食正在逐渐消失时。