Durch die Einstellung der Affinität wird diesem Prozess mitgeteilt, auf welchen Prozessoren er laufen darf.
Obwohl es für einige Nischenfälle sehr nützlich ist, sollte der durchschnittliche Benutzer dies wahrscheinlich nicht tun.
Wenn zum Beispiel einem Prozess erlaubt wurde, dass sein eigener Kern ausgeführt wird, kann er in (nahezu) Echtzeit ausgeführt werden, ohne dass diese 70 Windows-Dienstprogramme den Prozessor für ihre eigene Zeitscheibe ständig unterbrechen und stapeln müssen. Echtzeitanwendungen waren etwas, was Windows niemals tun konnte, bevor Multiprozessor- / Multicore-Systeme auf den Markt kamen, da das Betriebssystem die Anwendung ständig für ihre eigenen Zwecke unterbrach / die Aufgabe umschaltete. Dies kann nun meistens überwunden werden, indem die Echtzeitanwendung mit einem Prozessor isoliert wird, während verhindert wird, dass alle anderen Anwendungen im System diesen Prozessor verwenden. Dies ist ein sehr Nischenthema, aber Systeme wie (echte) Flugsimulatoren, Fabrikautomation und Regelfeedbacksysteme hängen von der Echtzeitarchitektur ab.
Prozessorintensive Anwendungen (wie VMs) können auf ihren eigenen Kern isoliert werden, so dass Sie sie verwenden können, ohne den Rest Ihres Systems zu kriechen. Theoretisch kann ein Hypervisor, der auf einem Prozessor läuft, der Bare-Metal-Hypervisor-Interaktion unterstützt, eine Prozessorleistung erreichen, die der eines unabhängigen Betriebssystems entspricht (abzüglich des für das Host-Betriebssystem erforderlichen Prozessors). In der Praxis muss natürlich auch eine VM, die auf einem eigenen, isolierten Core / Prozessor ausgeführt wird, einen geringen Overhead des Host-Betriebssystems akzeptieren.
Bei Anwendungen, die eine große Menge an Daten verarbeiten, wird durch das Isolieren der Anwendung für ihren eigenen Prozessor (und möglicherweise immer noch mehrere Kerne) das Cache-Swapping reduziert.
Ältere Anwendungen, die kaputt gehen, wenn sie auf mehrere Prozessoren verteilt sind, können effektiv auf einen Core / Prozessor beschränkt sein, um das Problem zu beheben.
Wenn Sie Leistungsmessungen für eine bestimmte Anwendung durchgeführt haben, ist es nahezu unmöglich, konsistente Ergebnisse für verschiedene Systeme zu erhalten, es sei denn, Sie können den Prozess isolieren, da Sie sonst keine Kontrolle darüber haben, wie viel Zeit das Betriebssystem Ihrer Anwendung gibt. Die meisten Leute sind sich einig, dass die Messung der Laufzeitleistung keine guten Ergebnisse liefert, aber diese Leute haben nie in Betracht gezogen, dass der Eingriff des Betriebssystems (das führt zu inkonsistenten Ergebnissen) durch die Verwendung von Affinität eingeschränkt werden kann.
Es gibt viele Fälle, in denen Affinität von entscheidender Bedeutung ist, aber wenn Sie nicht wissen, was sie sind, werden Sie sie wahrscheinlich nicht brauchen.