Die meisten Windows-PCs werden jetzt von Multi-Core-Prozessoren angetrieben, und neuere Windows-Versionen können die gesamte Verarbeitungsleistung Ihres PCs in der Regel sehr gut automatisch aufteilen, um Ihre laufenden Apps und Spiele optimal zu unterstützen. Manchmal haben Benutzer und Windows jedoch unterschiedliche Vorstellungen, wenn es darum geht, die optimale Nutzung der CPU-Leistung eines PCs zu bestimmen. Fortgeschrittene Benutzer können hier mithilfe einer Funktion bestimmte Apps oder Prozesse manuell auf bestimmte CPU-Kerne beschränken genannt Prozessoraffinität . Hier ist, wie es geht.
Bei Consumer-Versionen von Windows reicht die Möglichkeit für einen Benutzer, die Verwendung bestimmter CPU-Kerne durch eine App manuell zu konfigurieren, bis in den Windows XP / 2000-Zeitraum zurück, obwohl sich die Schritte in jeder Windows-Version geringfügig unterscheiden. Für die Schritte und Screenshots verwenden wir Windows 10, aber Leser, auf denen ältere Versionen von Windows, insbesondere Windows 7 und Windows 8 / 8.1, ausgeführt werden, sollten in der Lage sein, die grundlegenden Schritte zu befolgen, trotz geringfügiger Unterschiede zur Windows-Benutzeroberfläche.
Es ist auch wichtig zu beachten, bevor wir fortfahren, dass das Ändern der Prozessoraffinität für einen bestimmten Prozess oder eine bestimmte App zu Stabilitätsproblemen führen kann und wahrscheinlich die Leistung moderner Multithread-Apps und -Spiele beeinträchtigt. Versuchen Sie daher zunächst, mit nicht wichtigen Apps und Daten zu experimentieren, und speichern Sie alle offenen Arbeiten oder Spielfortschritte, bevor Sie die hier beschriebenen Einstellungen ändern, da es zu Abstürzen der Anwendung oder des Systems kommen kann.
Warum den Zugriff einer App auf CPU-Kerne beschränken?
Wie oben erwähnt, möchten die meisten Benutzer, dass Windows automatisch mit der Rechenleistung des PCs umgeht und dass Apps, die alle Kerne nutzen können, darauf zugreifen können. Dies führt im Allgemeinen zu einer besseren Leistung. Daher ist die Hauptfrage, warum ein Benutzer eine bestimmte Multithread-App jemals auf weniger als die Gesamtmenge der physischen und logischen Kerne beschränken oder beschränken möchte, die auf einem PC verfügbar sind.
Es gibt zwei grundlegende Antworten auf diese Frage: 1) um Kompatibilität und Leistung mit älterer Software sicherzustellen, und 2) um ein Prozessor-Hog mit starkem Threading auszuführen, während immer noch genügend Ressourcen reserviert sind, um gleichzeitig andere Aufgaben auszuführen.
Wir beginnen mit der ersten Antwort: Kompatibilität und Leistung. Einige Windows-Apps und -Spiele wurden lange vor der Realität von Multi-Threaded- und Multi-Core-Prozessoren auf Consumer-Ebene programmiert. Insbesondere die Entwickler älterer Spiele haben sich möglicherweise nie vorgestellt, dass jemand, der das Spiel spielt, mehr als einen Windows-PC mit einem einzigen Hochfrequenz-CPU-Kern haben würde. Wenn Software dieser Ära auf moderne CPUs trifft, die vier, sechs, acht oder noch mehr Kerne packen, kann dies manchmal zu Leistungsproblemen oder sogar zur Unfähigkeit führen, das Programm überhaupt zu starten.
Natürlich funktionieren viele Apps und Spiele auch dann noch einwandfrei, wenn sie mit den neuesten 8-Core / 16-Thread-Monster-Desktop-CPUs betrieben werden. Wenn Sie jedoch versuchen, ein älteres Spiel zu spielen, und Probleme auftreten, kann die Verwendung der Prozessoraffinität zur manuellen Beschränkung des Spielprozesses auf nur einen Ihrer vielen Kerne ein guter Fehlerbehebungsschritt sein.
Die zweite Antwort ist wahrscheinlich für mehr Windows-Benutzer nützlicher und bildet die Grundlage für die folgenden schrittweisen Anweisungen. Während viele Windows-Apps, insbesondere Spiele, immer noch nicht mehr als ein oder zwei Kerne nutzen können, wurden in den letzten Jahren Content-Erstellungs-Apps wie Video-Encoder und 3D-Rendering-Tools optimiert, um jede Unze Rechenleistung nutzen zu können Ihr PC kann auf sie werfen. Im Allgemeinen möchten Sie, dass diese Apps so schnell wie möglich ausgeführt werden. Manchmal sind jedoch Geschwindigkeit oder Ausführungszeit nicht der Hauptfaktor. Sie möchten lieber einen Teil der Verarbeitungsleistung Ihres PCs für eine andere Aufgabe verfügbar halten, während Ihre anspruchsvolle Medien-App in der ausgeführt wird Hintergrund. Hier ist die Prozessoraffinität wirklich nützlich.
Schritt für Schritt: Unser Beispiel
Eine App, die alle CPU-Kerne auffrisst, die Sie darauf werfen, ist ein x264-Video-Encoder wie RipBot264 (oder HandBrake oder eines der unzähligen verfügbaren x264- und x265-Encoder-Tools). In unserem Beispiel möchten wir, dass RipBot264 eine Videodatei codiert, aber wir möchten gleichzeitig auch an anderen Projekten in Apps wie Photoshop und Premiere arbeiten.
Standardmäßig verwendet eine App wie RipBot264 die gesamte verfügbare Rechenleistung.
Wenn wir unsere RipBot264-Codierung starten und dann Photoshop und Premiere starten, bemüht sich Windows, die Anforderungen der einzelnen Apps zu priorisieren und zu berücksichtigen. Windows macht jedoch gelegentlich einen Fehler, der zu Verzögerungen oder vorübergehenden Einfrierungen in unseren aktiven Apps führt. Wir können versuchen, dies zu vermeiden, indem wir die Prozessoraffinität verwenden, um die Verwendung unserer CPU-Kerne durch RipBot264 einzuschränken.Stellen Sie zunächst sicher, dass Sie bei einem Windows-Benutzerkonto mit Administratorrechten angemeldet sind. Starten Sie dann die App, die Sie einschränken möchten. In unserem Fall ist das RipBot264.
Starten Sie anschließend den Windows Task-Manager, indem Sie mit der rechten Maustaste auf die Taskleiste klicken und Task-Manager auswählen oder die Tastenkombination Strg-Umschalt-Escape verwenden . Standardmäßig wird der Task-Manager in neueren Windows-Versionen in einer einfachen Ansicht gestartet. Wenn Ihr Task-Manager nicht wie in unseren Screenshots aussieht, klicken Sie auf Weitere Details, um die vollständige Benutzeroberfläche anzuzeigen. Stellen Sie anschließend sicher, dass Sie sich auf der Registerkarte "Prozesse" befinden und suchen Sie jetzt Ihre App oder Ihren Prozess.
Dieser letzte Schritt ist möglicherweise leichter gesagt als getan. In vielen Fällen finden Sie einfach Ihre gewünschte App in der Liste. In anderen Fällen verwenden einige Apps für bestimmte Aufgaben möglicherweise andere Prozesse als den primären Anwendungsprozess. Der Schlüssel ist, den oder die Prozesse zu finden, die für die CPU-Auslastung verantwortlich sind, die Sie begrenzen möchten. Ein guter Weg, um dies zu testen, besteht darin, die anspruchsvolle Aktivität zu starten (in unserem Fall, eine Videodatei zu codieren) und dann den Task-Manager nach der CPU-Spalte zu sortieren, um die Prozesse zu finden, die die höchsten CPU-Ressourcen belegen. Wenn der Prozessname (in unserem Fall wiederum ein H.264-Encoder-Prozess) mit Ihrer Ziel-App übereinstimmt, sind Sie fertig.
Klicken Sie mit der rechten Maustaste auf den richtigen Prozess und wählen Sie Gehe zu Details . Dadurch gelangen Sie zur Registerkarte Details des Task-Managers und markieren automatisch den richtigen Prozess.
Klicken Sie nun erneut mit der rechten Maustaste auf den Prozess und wählen Sie Affinität festlegen .
Als Nächstes müssen Sie entscheiden, wie sehr Sie Ihre App einschränken möchten. Aktivieren Sie das Kontrollkästchen neben " Alle Prozessoren", um die Auswahl aller CPU-Kästchen aufzuheben, und aktivieren Sie dann mindestens ein CPU-Kästchen, wobei jedes Kästchen einen physischen oder logischen Kern darstellt. Ohne CPU-Defekte oder spezielle Übertaktungsszenarien spielt es im Allgemeinen keine Rolle, welche Kerne Sie auswählen.
In unserem Beispiel möchten wir RipBot264 auf vier Kerne beschränken, damit viel Platz für andere zeitkritische Aufgaben bleibt. Nachdem Sie die gewünschte Anzahl an Kernen ausgewählt haben, klicken Sie auf OK, um das Fenster "Prozessoraffinität" zu schließen. Ihre Änderungen werden sofort wirksam und wenn die App bereits mit einer CPU-lastigen Aufgabe beschäftigt war, wird die Prozessorauslastung auf allen außer den von Ihnen ausgewählten Kernen sinken.
Sobald wir RipBot264 so konfigurieren, dass nur 4 unserer 16 Kerne verwendet werden, sinkt die CPU-Auslastung sofort auf die verbleibenden Kerne.
Mit diesem Setup können wir RipBot264 so schnell wie möglich auf diesen vier Kernen codieren lassen, aber die verbleibenden zwölf Kerne in unserem System können andere Apps verarbeiten. Wenn wir später unsere anderen Arbeiten beenden und die volle Leistung von RipBot264 wiederherstellen möchten, können wir einfach die obigen Schritte wiederholen, um zum Fenster "Prozessoraffinität" zurückzukehren und dann das Kontrollkästchen " Alle Prozessoren " zu aktivieren, um der App erneut Zugriff auf alle unsere CPUs zu gewähren Kerne.Vorbehalte
Zusätzlich zu den zuvor erwähnten Stabilitätsproblemen gibt es noch eine weitere wichtige Einschränkung, die Sie berücksichtigen müssen. Alle Änderungen, die Sie an der Prozessoraffinität vornehmen, werden bei jedem Neustart des Prozesses zurückgesetzt. Dies bedeutet, dass Sie diese Schritte mindestens jedes Mal wiederholen müssen, wenn Sie Ihren PC neu starten. Einige Prozesse sind jedoch noch problematischer, da sie abhängig von den Anweisungen der App automatisch neu geladen werden. In unserem RipBot264-Setup wird beispielsweise der von uns geänderte H.264-Encoder-Prozess jedes Mal neu gestartet, wenn die App zum Codieren einer neuen Videodatei übergeht.
Sie können diese Einschränkung möglicherweise umgehen, indem Sie benutzerdefinierte Skripts erstellen, mit denen die Prozessoraffinität Ihrer App über eine befehlszeilenbasierte Batchdatei oder Verknüpfung festgelegt wird. Einige Apps verwenden jedoch möglicherweise eindeutige oder zufällige Prozesse, die solche Bemühungen erschweren oder unmöglich machen. Es ist daher am besten, mit jeder App, die Sie einschränken möchten, einzeln zu experimentieren, um die beste Möglichkeit zur manuellen Konfiguration der Prozessoraffinität zu finden.
