Answers:
设置亲和力可以做一些事情,但是您永远都不想使用它。
设置CPU关联会强制Windows仅使用所选的CPU(或内核)。如果将关联性设置为单个CPU,则Windows将仅在该CPU上运行该应用程序,而不会在任何其他CPU上运行。
Windows自动将运行的应用程序放在最不繁忙的处理器上,因此将其限制为单个CPU并不能使Windows正常工作。即使CPU /核心1忙于运行其他应用程序,Windows也将无法运行在CPU /核心2上设置了相似性的应用程序。
确实,您要这样做的唯一原因是运行一个在多CPU / Core系统上运行时无法正常运行的旧应用程序。
设置相似性告诉该进程允许在哪个处理器上运行。
虽然对于某些特定情况非常有用,但普通用户可能不应该对此感到困惑。
例如,如果某个进程允许其自己的核心运行,则它可以实时(接近)实时运行,而这70个Windows实用程序不会在自己的时间片内不断中断和在处理器上进行堆栈交换。在多处理器/多核系统问世之前,实时应用程序是Windows永远无法做到的,因为操作系统会不断地出于自身目的中断/任务切换应用程序。现在,可以通过隔离一个处理器的实时应用程序,同时防止系统中的所有其他应用程序使用该处理器来克服这一问题。这是一个非常小众的课题,但是诸如(真实)飞行模拟器,工厂自动化和控制反馈系统之类的系统要依靠实时架构来工作。
可以将处理器密集型应用程序(例如VM)隔离到自己的核心,因此您可以使用它们而无需将系统的其余部分拖入爬网。从理论上讲,在支持裸机管理程序交互的处理器上运行的管理程序可以达到与独立运行的独立操作系统相同的处理器性能(减去运行主机操作系统所需的处理器)。当然,实际上,即使是在其自身隔离的内核/处理器上运行的VM,仍将需要接受来自主机OS主机的少量开销。
对于处理大量数据流的应用程序,将应用程序隔离到其自己的处理器(并可能仍使用多个内核)将减少缓存交换。
可以在多个处理器中分散运行的旧应用程序可以有效地限制为一个内核/处理器来解决此问题。
如果要在特定应用程序上进行性能测量,则几乎不可能在不同系统上获得一致的结果,除非您可以隔离进程,否则,您将无法控制操作系统为应用程序提供的时间。大多数人都同意,测量运行时性能不会给出良好的结果,但是这些人从未考虑过可以通过使用亲缘关系来限制OS干预(使结果如此不一致)。
在很多情况下,亲和力至关重要,但是,如果您不知道亲和力是什么,则可能不需要它。
在某些情况下,这是一个非常有用的功能。假设您有一个多线程应用程序,该应用程序往往处于空闲状态,或者在几分钟内主动捕获每个CPU的100%进行搜索,构建等操作。我们将此应用程序称为“ Eclipse”。
还要说,当您在处理此应用程序时,您还有许多其他对CPU要求不高的应用程序,但它们实际上是实时应用程序。例如,当您使用Eclipse并随机启动构建或进行gwt编译时,还使用计算机在浏览器窗口中流式传输音乐或进行研究(例如,研究构建问题的原因) 。当然,如果您跳过音乐或浏览器停止响应,也不会死,但这很烦人。
关联性使您可以将cpu eating应用程序限制为7/8内核,这样可以保证其他所有人都可以访问相对未使用的cpu,并且不必时常处理计算机上其他所有内容的卡顿和中断而日食正在逐渐消失。
较高的优先级意味着任务的处理将比低优先级的任务更具优势。如果您运行的应用程序需要快速响应,并且需要运行其他一系列非交互过程,例如,优先级可以确保您对高优先级过程有更好的体验。
例如:从Windows Vista开始,Windows Media Player会自动获得更高的优先级,以确保流畅连续地播放媒体文件,默认情况下,其他进程只能使用大约20%的CPU时间。这只是一个示例,可以帮助您了解优先级。(您可以在Technet上的Vista中阅读有关Media Player优先级的更多信息。)
软或硬关联可以提高处理速度,因为在先前中断某个进程然后在以后的某个时间恢复时,CPU的高速缓存中仍可以保留该进程的剩余内容。