Was genau ist Priorität und Affinität (im Task-Manager enthalten) und wofür werden sie verwendet:
In welchen Situationen sollten / könnten sie verwendet werden und welche Vorteile ergeben sich beim Anpassen dieser Einstellungen.
Was genau ist Priorität und Affinität (im Task-Manager enthalten) und wofür werden sie verwendet:
In welchen Situationen sollten / könnten sie verwendet werden und welche Vorteile ergeben sich beim Anpassen dieser Einstellungen.
Antworten:
Das Einstellen der Affinität bewirkt zwar etwas, aber Sie werden es niemals verwenden wollen.
Durch Festlegen der CPU-Affinität wird Windows gezwungen, nur die ausgewählte CPU (oder die ausgewählten Kerne) zu verwenden. Wenn Sie die Affinität auf eine einzelne CPU festlegen, führt Windows diese Anwendung nur auf dieser CPU aus, niemals auf einer anderen.
Windows stellt ausgeführte Anwendungen automatisch auf den am wenigsten ausgelasteten Prozessor, sodass Windows seine Arbeit nicht auf eine einzelne CPU beschränken kann. Selbst wenn CPU / Core 1 andere Anwendungen ausführt, kann Windows keine Anwendung mit auf CPU / Core 2 festgelegter Affinität ausführen.
Der einzige Grund, warum Sie dies tun möchten, ist die Ausführung einer alten Anwendung, die auf einem Multi-CPU / Core-System nicht ordnungsgemäß funktioniert.
Durch Festlegen der Affinität wird dem Prozess mitgeteilt, auf welchen Prozessoren er ausgeführt werden darf.
Obwohl dies für einige Nischenfälle sehr nützlich ist, sollte sich der durchschnittliche Benutzer wahrscheinlich nicht damit anlegen.
Wenn beispielsweise einem Prozess erlaubt würde, seinen eigenen Kern auszuführen, könnte er in (nahezu) Echtzeit ausgeführt werden, ohne dass diese 70 Windows-Dienstprogramme den Prozessor ständig unterbrechen und für ihre eigene Zeitscheibe stapeln. Echtzeitanwendungen waren etwas, was Windows niemals tun konnte, bevor Multiprozessor- / Multi-Core-Systeme auf den Markt kamen, da das Betriebssystem die Anwendung ständig für seine eigenen Zwecke unterbrach / aufgab. Dies kann jetzt größtenteils überwunden werden, indem die Echtzeitanwendung von 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 Steuerungsrückmeldesysteme hängen von der Echtzeitarchitektur ab, um zu funktionieren.
Prozessorintensive Anwendungen (wie VMs) können auf ihren eigenen Kern isoliert werden, sodass Sie sie verwenden können, ohne den Rest Ihres Systems zu crawlen. Theoretisch kann ein Hypervisor, der auf einem Prozessor ausgeführt wird, der die Bare-Metal-Hypervisor-Interaktion unterstützt, eine Prozessorleistung erreichen, die dem eigenständigen Betriebssystem entspricht (abzüglich des Prozessors, der zum Ausführen des Host-Betriebssystems erforderlich ist). In der Praxis muss natürlich auch eine VM, die auf einem eigenen isolierten Kern / Prozessor ausgeführt wird, noch einen geringen Overhead vom Host des Host-Betriebssystems akzeptieren.
Bei Anwendungen, die eine große Datenmenge im Fluss verarbeiten, wird durch das Isolieren der Anwendung auf ihren eigenen Prozessor (und möglicherweise durch die Verwendung mehrerer Kerne) der Cache-Austausch verringert.
Ältere Anwendungen, die nicht mehr funktionieren, wenn sie auf mehrere Prozessoren verteilt sind, können effektiv auf einen Kern / Prozessor beschränkt werden, um das Problem zu beheben.
Wenn Sie Leistungsmessungen für eine bestimmte Anwendung durchgeführt haben, ist es nahezu unmöglich, konsistente Ergebnisse über verschiedene Systeme hinweg zu erzielen, es sei denn, Sie können den Prozess isolieren, da Sie sonst keine Kontrolle darüber haben, wie viel Zeit das Betriebssystem Ihrer Anwendung zur Verfügung stellt. Die meisten Menschen sind sich einig, dass die Messung der Laufzeitleistung keine guten Ergebnisse liefert, aber diese Menschen haben nie in Betracht gezogen, dass die Betriebssystemintervention (die die Ergebnisse so inkonsistent macht) durch die Verwendung von Affinität eingeschränkt werden kann.
Es gibt viele Fälle, in denen Affinität wichtig ist, aber wenn Sie nicht wissen, was sie sind, werden Sie sie wahrscheinlich nicht brauchen.
Dies ist in bestimmten Szenarien eine sehr nützliche Funktion. Angenommen, Sie haben eine Multithread-Anwendung, die dazu neigt, entweder inaktiv zu sein oder mehrere Minuten lang 100% jeder CPU aggressiv zu greifen, Suchvorgänge, Builds usw. durchzuführen. Nennen wir diese Anwendung "Eclipse".
Nehmen wir auch an, dass Sie während der Arbeit an dieser Anwendung eine Reihe anderer Anwendungen haben, die bescheidene CPU-Anforderungen haben, aber im Wesentlichen Echtzeitanwendungen sind. Während Sie beispielsweise Eclipse verwenden und Builds zufällig starten oder GWT-Kompilierungen durchführen, verwenden Sie Ihren Computer auch zum Streamen von Musik oder zum Durchführen von Recherchen in einem Browserfenster (z. B. zum Erforschen der Ursache eines Build-Problems). . Sicher, Sie werden nicht sterben, wenn Ihre Musik überspringt oder Ihr Browser nicht mehr reagiert, aber es ist ärgerlich.
Mit Affinität können Sie Ihre CPU-Ess-App auf 7/8 Kerne beschränken, sodass allen anderen der Zugriff auf eine relativ unbenutzte CPU garantiert wird und Sie nicht ständig mit Stottern und Unterbrechungen der Benutzerfreundlichkeit von allem anderen auf Ihrem Computer zu kämpfen haben während die Sonnenfinsternis wegschleift.
Höhere Priorität bedeutet, dass die Verarbeitung einer Aufgabe gegenüber Aufgaben mit niedriger Priorität von Vorteil ist. Wenn Sie eine Anwendung ausführen, die sehr reaktionsschnell sein muss, und beispielsweise eine Reihe anderer nicht interaktiver Prozesse, können Prioritäten eine bessere Erfahrung mit Ihrem Prozess mit hoher Priorität gewährleisten.
Beispiel: Seit Windows Vista erhält Windows Media Player automatisch eine höhere Priorität, um eine reibungslose und kontinuierliche Wiedergabe von Mediendateien zu gewährleisten. Standardmäßig stehen anderen Prozessen nur etwa 20% der CPU-Zeit zur Verfügung. Dies ist nur ein Beispiel, um Ihnen zu helfen, die Prioritäten zu verstehen. (Weitere Informationen zu Media Player-Prioritäten finden Sie in Vista unter Technet .)
Eine weiche oder harte Affinität kann die Verarbeitungsgeschwindigkeit erhöhen, da der Cache der CPU noch Reste des Prozesses enthalten kann, wenn ein Prozess zuvor unterbrochen und zu einem späteren Zeitpunkt wieder aufgenommen wurde.
Ein perfektes Beispiel hierfür sind alte Computerspiele (oder andere Software), insbesondere wenn 32-Bit-Spiele (Anwendungen) auf einem modernen 64-Bit-Computer emuliert werden. Indem die Affinität für alte Spiele auf nur vier Kerne beschränkt wird, können Abstürze oft vermieden werden, damit Stubburn-Spiele gestartet werden können. Einige Rendering-Engines, die von ALTEN Spielen, Videobearbeitern und hardwarebeschleunigter Grafiksoftware oder CAD-Software verwendet werden, verstehen nicht mehr als vier CPU-Kerne und stürzen beim Start ab.
Ich erstelle kein Konto, nur um dies zu posten und um mich bei Google 'kieseyhow' zu finden.