„Wenn ich meine Anwendung aus dem Vordergrund nehme, fängt der Ton an zu knacken.“
„Seit ich Prozessorzeitplanung auf Hintergrunddienste gestellt habe, läuft es stabil.“
Solche Aussagen kursieren unter Windows schon lange. Besonders relevant sind sie bei Audio, Video, Messtechnik, Streaming und residenten Prozessen – also überall dort, wo die kontinuierliche Verarbeitung wichtiger ist als die Benutzeroberfläche.
Diese Einstellung ist jedoch kein magischer Beschleunigungsschalter. Sie erhöht nicht direkt den CPU-Takt, verwandelt Ihre Anwendung nicht in einen Windows-Dienst und fixiert nichts auf P-Kerne. Was sich hauptsächlich ändert, ist, wie CPU-Zeit zwischen der Vordergrundanwendung und den dahinter laufenden Prozessen verteilt wird.
Dieser Artikel ordnet ein, was sich zwischen Programme und Hintergrunddienste ändert, und verbindet dabei die Grundlagen des Windows-Schedulers, das Quantum (die Zeitscheibe), die Bevorzugung des Vordergrunds sowie das Verhalten von CPUs mit P-Kernen und E-Kernen.
1. Zuerst das Fazit
Vorab die wichtigsten Punkte im Überblick.
- Diese Einstellung ändert direkt nicht die „Leistung“ der CPU, sondern die „Verteilung“ der CPU-Zeit.
Programmebevorzugt eher die Vordergrundanwendung,Hintergrunddienstebehandelt Vordergrund- und Hintergrundverarbeitung gleichmäßiger.- Deshalb kann
Hintergrunddienstebei Workloads wirken, bei denen die Fristen der kontinuierlichen Hintergrundverarbeitung wichtiger sind als die Vordergrund-UI. - Bei CPUs mit P-Kernen und E-Kernen wird jedoch „auf welchem Kern etwas landet“ heute stärker von QoS, Energierichtlinie, Hybrid-Scheduling und Intel Thread Director bestimmt als von dieser Einstellung allein.
- Mit anderen Worten:
Hintergrunddiensteführt nicht einfach dazu, dass „Hintergrundverarbeitung auf den P-Kern“ oder „Dienste auf den E-Kern“ wandern. - Stammen Audio-Aussetzer oder Dropouts von DPC/ISR, USB-Energiesparmodi, Treibern, thermischem Throttling oder EcoQoS, behebt diese Einstellung allein sie nicht.
Kurz gesagt: Diese Einstellung ist kein CPU-Frequenzregler, sondern ändert die Regeln der Warteschlange.
1.1 Begriffe, die man vorab kennen sollte
In diesem Artikel tauchen zu Beginn Begriffe auf, deren eigentliche Bedeutung sich erst um Kapitel 6 herum erschließt. Hier vorab eine Übersicht.
| Begriff | Bedeutung |
|---|---|
| Quantum (Zeitscheibe) | Die Zeiteinheit, für die ein Thread bei einem Durchlauf ununterbrochen ausgeführt werden kann. Windows zählt dabei ein Drittel eines Clock Tick (des Intervalls der Systemtaktunterbrechung) als eine Einheit |
| ISR / DPC | ISR steht für Interrupt Service Routine, DPC für Deferred Procedure Call (verzögerter Prozeduraufruf). Beides sind Mechanismen, mit denen Treiber Interrupts verarbeiten; sie laufen vor gewöhnlichen Threads, weshalb Anwendungen warten müssen, wenn dies zu lange dauert |
| MMCSS | Multimedia Class Scheduler Service. Ein Windows-Dienst, der die Priorität von Threads, die Multimedia-Verarbeitung durchführen und sich selbst registrieren, gemäß den Registrierungseinstellungen anhebt |
| QoS | Quality of Service. Die einem Thread zugewiesene „Klassifizierung von Leistung und Energieeffizienz“. Eine von der Priorität unabhängige Achse, die beeinflusst, welche Art von Kern gewählt wird und wie die CPU-Energie verwaltet wird |
| EcoQoS | Eine auf Energiesparen ausgerichtete QoS-Klassifizierung. Anwendungen setzen sie ausdrücklich über SetProcessInformation / SetThreadInformation |
| Underrun | Wenn bei der Audioverarbeitung und Ähnlichem der Puffer bis zur Frist nicht gefüllt werden kann und die Daten ausgehen. Hörbar als Knacken oder Dropout |
| Core Parking | Ein Energiesparmechanismus, der ungenutzte logische Prozessoren bei geringer Last schlafen legt |
| C-State | Die Tiefe des Leerlaufzustands der CPU. Je tiefer, desto sparsamer, aber desto länger dauert die Rückkehr |
| P-Kern / E-Kern | Ein leistungsorientierter Kern beziehungsweise ein energieeffizienzorientierter Kern. CPU-Konfigurationen mit beiden Kerntypen werden als hybrid (heterogen) bezeichnet |
| Intel Thread Director | Ein Mechanismus, mit dem Intels Hybrid-CPUs dem Betriebssystem Hinweise zu den Ausführungseigenschaften eines Threads geben. Windows 11 nutzt ihn bei der Kernauswahl |
2. Was ändert diese Einstellung eigentlich?
Die Option Prozessorzeitplanung im Einstellungsbildschirm ist eine der seit Langem bestehenden Scheduling-Richtlinien von Windows. Intern ist sie mit Win32PrioritySeparation verknüpft – eine Einstellung mit einer ziemlich langen Geschichte.
Zunächst die Grundlagen, wie Windows die CPU nutzt.
- Der Scheduler wählt zuerst unter den ausführbaren Threads denjenigen mit der höchsten Priorität.
- Bei gleicher Priorität werden sie der Reihe nach für jeweils eine feste Zeit ausgeführt.
- Diese „feste Zeit“ ist das Quantum (die Zeitscheibe).
flowchart LR
ready["Ausführbare Threads"] --> pick["Scheduler wählt den Thread mit höchster Priorität"]
pick --> run["1 Quantum lang ausführen"]
run --> wait{"Gibt es wartende Threads gleicher Priorität?"}
wait -- ja --> switch["Kontextwechsel"]
switch --> pick
wait -- nein --> run
Was Prozessorzeitplanung hauptsächlich beeinflusst, ist die Verteilung dieses Quantums und wie stark der Vordergrund bevorzugt wird.
„Vordergrund“ meint hier die Anwendung, mit der der Benutzer gerade interagiert. Umgekehrt tendieren Prozesse, die nach hinten gerückt sind, Worker in anderen Prozessen, Windows-Dienste, Hilfsprozesse und residente Verarbeitung eher zur Hintergrundseite.
Wichtig ist: Wählt man Hintergrunddienste, wird die eigene Anwendung dadurch nicht zu einem Windows-Dienst. Was sich ändert, ist nicht die Kategorie namens „Dienst“, sondern die CPU-Verteilungsregeln zwischen Vordergrund und Hintergrund. Der Name ist hier ziemlich irreführend.
2.1 Wie man zum Einstellungsbildschirm gelangt
Diese Einstellung liegt ziemlich tief in der Systemsteuerung verborgen. Es gibt zwei Wege dorthin.
- Über
Win + Rund Ausführen vonSystemPropertiesPerformance.exeöffnet sich direkt „Leistungsoptionen“. Auf der Registerkarte „Erweitert“ befindet sich dortProzessorzeitplanung. - Manuell folgt man dem Pfad „Systemeigenschaften“ > Registerkarte „Erweitert“ > „Leistung“ > „Einstellungen“ > Registerkarte „Erweitert“. „Systemeigenschaften“ selbst lässt sich mit
sysdm.cplöffnen.
Die getroffene Auswahl wird in folgenden Registrierungswert geschrieben.
| Element | Inhalt |
|---|---|
| Schlüssel | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\PriorityControl |
| Wertname | Win32PrioritySeparation |
| Typ | REG_DWORD |
| Bereich | 0x0–0x3F |
Möchte man nur den aktuellen Wert prüfen, lässt sich das mit PowerShell auslesen. Um die Einstellung zurücksetzen zu können, ist es sicherer, den Wert vor der Änderung zu notieren.
Get-ItemProperty -Path 'HKLM:\SYSTEM\CurrentControlSet\Control\PriorityControl' -Name 'Win32PrioritySeparation'
2.2 Betroffene Windows-Versionen und die Bedeutung der Werte
Die Option Prozessorzeitplanung in den „Leistungsoptionen“ gibt es sowohl in Windows-10-/Windows-11-Clients als auch in Windows Server. Verwirrend an dieser Einstellung ist jedoch, dass derselbe Wert bei Client und Server unterschiedlich interpretiert wird.
Microsofts Erläuterung zur Registrierung beschreibt Win32PrioritySeparation als eine Bitmaske, bei der 6 Bit in drei Zweiergruppen (AABBCC) unterteilt sind.
- Obere 2 Bit: ob das Quantum eher lang oder kurz ist
- Mittlere 2 Bit: ob das Quantum variabel oder fest ist
- Untere 2 Bit: um das Wievielfache der Vordergrund gegenüber dem Hintergrund bevorzugt wird (wirkt nur bei variablem Quantum)
Darauf aufbauend schreibt die jeweilige UI-Auswahl folgende Werte (die damalige UI-Beschriftung lautete Applications und Background services, was den heutigen Optionen Programme und Hintergrunddienste entspricht).
| UI-Auswahl | Geschriebener Wert | Bedeutung |
|---|---|---|
Programme |
100110 (0x26) |
Eher kurzes, variables Quantum. Vordergrund wird dreifach gegenüber Hintergrund bevorzugt |
Hintergrunddienste |
011000 (0x18) |
Eher langes, festes Quantum. Vordergrund und Hintergrund werden gleich behandelt |
Geht man bei den Zahlen noch einen Schritt weiter, beschreibt Microsofts Erläuterungsartikel für 0x26 ein Quantum von 18 für den Vordergrund und 6 für den Hintergrund, bei 0x18 dagegen 36 für beide. Da das Quantum in Drittel-Clock-Tick-Einheiten gezählt wird, entspricht das in Ticks 6 Tick Vordergrund / 2 Tick Hintergrund beziehungsweise 12 Tick für beide. Derselbe Artikel nennt als Beispiel einen Clock Tick von 15,625 Millisekunden auf einer x86-Mehrprozessormaschine; in diesem Fall ergibt sich der Unterschied zwischen „der Vordergrund läuft bis zu rund 94 Millisekunden am Stück“ und „sowohl Vordergrund als auch Hintergrund laufen jeweils rund 188 Millisekunden am Stück“.
Mit anderen Worten: Bei Hintergrunddienste ist die Laufzeit pro Durchlauf zwar länger, aber der Vordergrund wird nicht bevorzugt. Die Hintergrundverarbeitung gerät seltener in den Zustand, „nie an der Reihe zu sein“.
Auch bei der Interpretation dieses Standardwerts gibt es Unterschiede zwischen den Betriebssystemen. Laut Microsofts Beschreibung zu Win32_OperatingSystem verwendet der Client standardmäßig ein variables Quantum mit längerem Quantum für die Vordergrundanwendung, Windows Server dagegen standardmäßig ein festes Quantum. Auch die Erläuterung zur Registrierung schreibt, dass derselbe Standardwert 0x2 beim Client „kurz, variabel, Vordergrund dreifach“ und beim Server „lang, fest, gleichmäßig“ bedeutet. Deshalb ist der Server von vornherein eher auf das eingestellt, was Hintergrunddienste entspricht.
Die hier genannten konkreten Zahlen beruhen auf Microsoft-Dokumentation und Erläuterungsartikeln aus der Generation Windows 2000 / XP. Die Zuordnung zwischen Registrierungswert und UI ist bis heute dieselbe, aber die tatsächliche Handhabung des Quantums kann sich je nach Windows-Version ändern – lesen Sie die Zahlen daher als Richtwert dafür, „in welcher Größenordnung“ sich die Sache bewegt.
3. Was sich zwischen Programme und Hintergrunddienste ändert
Am einfachsten lässt sich der Unterschied in einer Tabelle vergleichen.
| Aspekt | Programme |
Hintergrunddienste |
|---|---|---|
| Grundgedanke | Erleichtert es, die Vordergrundanwendung reaktionsfreudig zu machen | Behandelt Vordergrund- und Hintergrundverarbeitung gleichmäßiger |
| Bevorzugung des Vordergrunds | Stark | Geringer |
| Bei CPU-Auslastung | Die UI bleibt tendenziell angenehm bedienbar | Kontinuierliche Hintergrundverarbeitung wird seltener verdrängt |
| Geeignet für | Interaktionszentrierte Desktop-Nutzung | Dienste, Aufnahme, Kodierung, kontinuierliche Verarbeitung |
| Typischer Nebeneffekt | Hintergrundverarbeitung verpasst leichter Fristen | Die Reaktionsfreudigkeit der Vordergrund-UI kann etwas nachlassen |
Client-Windows ist grundsätzlich darauf ausgelegt, die Vordergrundanwendung angenehm laufen zu lassen. Für gewöhnliche Desktop-Nutzung ist Programme daher naheliegend.
Es gibt jedoch Fälle, in denen sich das Bild ändert.
- Audioverarbeitung, die im Hintergrund ständig Puffer füllt
- Aufnahme oder Analyse, die zwar eine leichte UI hat, aber kontinuierlich auf einem anderen Thread bzw. Prozess läuft
- Fälle, in denen man die Fristen der Hintergrundverarbeitung einhalten möchte, obwohl ein Browser oder eine IDE im Vordergrund läuft
- Server-, dienst- oder residenzorientierte Workloads
In solchen Fällen ist es stabiler, wenn die Hintergrundverarbeitung die CPU zurückerobern kann, statt nur den Vordergrund stark zu bevorzugen. In diesem Sinn kann Hintergrunddienste sinnvoll sein.
4. Warum das bei Audio und kontinuierlicher Verarbeitung wirken kann
Am Beispiel von Audio-Aussetzern und Dropouts lässt sich das gut nachvollziehen.
Bei der Audioverarbeitung reicht es nicht, „im Durchschnitt schnell“ zu sein. Alle paar Millisekunden – oder in noch kürzeren Abständen – muss der Puffer bis zum nötigen Zeitpunkt gefüllt werden. Auch wenn die durchschnittliche CPU-Auslastung niedrig ist, kommt es zu Aussetzern, wenn der Thread ausgerechnet in diesem Moment nicht laufen kann.
Ein konkretes Beispiel:
- Im Vordergrund läuft ein Browser, die UI einer DAW oder eine andere Anwendung
- Im Hintergrund läuft ein Audioverarbeitungs-Thread in festem Zyklus und liefert Puffer
- Der Audioverarbeitungs-Thread hat keine übermäßig hohe Priorität, und MMCSS oder QoS werden nicht ausreichend genutzt
- Die CPU ist einigermaßen ausgelastet
Bei Programme läuft die Vordergrundanwendung tendenziell länger am Stück, sodass die Hintergrund-Audioverarbeitung „im Durchschnitt kein Problem hat, aber genau in diesem Moment zu spät kommt“. Wiederholt sich das, entsteht ein Underrun – das Knacken.
Wechselt man dagegen zu Hintergrunddienste, kann die kontinuierliche Hintergrundverarbeitung die CPU leichter zurückerobern, wodurch Fristen seltener verpasst werden.
Wenn diese Einstellung wirkt, geschieht also nicht „die CPU wurde schneller“, sondern:
- die Bevorzugung der Vordergrundanwendung wird etwas schwächer
- die Anzahl und der Zeitpunkt der Gelegenheiten, in denen die Hintergrundverarbeitung eingreifen kann, verbessern sich
- dadurch sinken verpasste Fristen (Deadline Misses)
5. Das Prinzip – Quantum und die Bevorzugung des Vordergrunds
Betrachtet man das etwas tiefer auf technischer Ebene, sieht der Wirkmechanismus so aus.
5.1 Bei langem Quantum warten gleich priorisierte Konkurrenten länger
Konkurrieren mehrere Threads in derselben Prioritätsklasse, gilt: Je länger das Quantum, das ein Thread erhält, desto länger müssen die anderen entsprechend warten.
Bei einer Einstellung, die den Vordergrund bevorzugt, läuft die Vordergrundseite tendenziell länger am Stück. Die Hintergrundseite mit ähnlicher Priorität bekommt dadurch entsprechend häufiger ein „jetzt nicht“ zu hören.
Bei Verarbeitungen, die wenn auch nur ein bisschen, so doch regelmäßig laufen wollen – Audio, Video, periodische Messung, Polling, Überwachung –, macht sich dieser Unterschied bemerkbar.
5.2 Windows kümmert sich auf mehrere Arten um den Vordergrund
Windows achtet grundsätzlich stark auf den Vordergrund. Typische Beispiele sind:
- Bevorzugung des Prozesses, der in den Vordergrund gerückt ist
- Bevorzugung des Threads, dessen Fenster Eingaben erhält
- Dynamische Prioritätsanhebungen für Threads nach abgeschlossenem I/O
Das bedeutet: Allein eine Anwendung aus dem Vordergrund zu nehmen, ändert bereits ihre Behandlung durch den Scheduler. Man versteht Hintergrunddienste am leichtesten so, dass es unter diesen Vordergrundbevorzugungen speziell die Schieflage in der Verteilung der CPU-Zeit verringert.
5.3 „Die CPU nicht faulenzen lassen“ ist halb richtig, halb daneben
Die Formulierung „die CPU nicht faulenzen lassen“ ergibt gefühlsmäßig Sinn. In dem Sinn, dass Hintergrundverarbeitung seltener zurückgestellt wird, stimmt sie tatsächlich.
Technisch genauer betrachtet ändert sich jedoch weniger die Leerlaufsteuerung oder die Frequenz der CPU selbst als vielmehr die Reihenfolge und Dauer, in der Threads laufen.
Diese Einstellung ist deshalb:
- kein Regler für Turbo Boost
- kein Schalter für C-States
- keine direkte Änderung des Core Parking
- keine Fixierung auf P-Kerne
6. Wie wirkt sich das auf CPUs mit P-Kernen und E-Kernen aus?
Hier entstehen die meisten Missverständnisse.
Hintergrunddienste bedeutet nicht, dass Windows einfach entscheidet „Hintergrundverarbeitung, also E-Kern“ oder „Vordergrund, also P-Kern“. Auf modernem Windows – insbesondere Windows 11 auf Hybrid-CPUs – ist die Auswahl zwischen P-Kern und E-Kern deutlich mehrstufiger.
6.1 Ähnliche Namen, aber unterschiedliche Dinge
Zunächst gibt es zwei unterschiedliche Dinge mit ähnlichen Namen.
HintergrunddiensteunterProzessorzeitplanung- Eine Einstellung in der alten Benutzeroberfläche
- Wirkt hauptsächlich auf die Verteilung der CPU-Zeit zwischen Vordergrund und Hintergrund
- Gehört zur Familie von Quantum und Foreground-Boost
- QoS-Stufen wie
Utility/Eco/Low- Moderne Windows-Klassifizierung von Energie und Leistung
- Wirkt auch auf die Kernauswahl und die Frequenzsteuerung
- Hängt direkt mit dem Verhalten von P-Kernen und E-Kernen zusammen
Diese beiden sind nicht dasselbe.
6.2 QoS und Sichtbarkeit unter Windows 11
Auf modernem Windows zählt neben der Priorität auch QoS. Insbesondere bei heterogenen Prozessoren – also Konfigurationen mit P-Kernen und E-Kernen – beeinflusst QoS, welche Art von Kern bevorzugt wird.
Die grobe Klassifizierung unter Windows 11 sieht so aus.
| Zustand / Klasse | QoS-Bild | Auswirkung auf P-/E-Kerne | Wo dokumentiert |
|---|---|---|---|
| Vordergrund und fokussierte Fensteranwendung | High | Eher leistungsorientiert | QoS-Klassifizierungstabelle, „In Focus“ |
| Sichtbar, aber nicht fokussiert | Medium | Dazwischen | QoS-Klassifizierungstabelle, „Visible“ |
| Minimiert / vollständig verdeckt | Low | Im Batteriebetrieb eher Effizienzkern | QoS-Klassifizierungstabelle, „Minimized, or Fully Occluded“ |
| Hintergrunddienste | Utility | Im Batteriebetrieb eher Effizienzkerne | QoS-Stufentabelle, „Utility“ |
| Explizit mit EcoQoS markierte Verarbeitung | Eco | Eher Effizienzkerne | QoS-Stufentabelle, „Eco“ |
| Von MMCSS für Batch-Pufferung markierte Threads | Media | Effizienzorientiert, senkt die Frequenz | QoS-Stufentabelle, „Media“ |
| Multimedia-Thread mit Audio-Frist | Deadline | Eher leistungsorientiert | QoS-Stufentabelle, „Deadline“ |
Diese Tabelle fasst zwei Tabellen aus dem Microsoft-Learn-Artikel „Quality of Service“ neu zusammen: die Liste der QoS-Stufen (High / Medium / Low / Utility / Eco / Media / Deadline) und die QoS-Klassifizierung, die den QoS aus dem Anzeigezustand eines Fensters ableitet. Sie ist keine aus Beobachtungen abgeleitete Klassifizierung. Dasselbe Dokument enthält außerdem die Regel, dass ein Prozess, der als hörbar erkannt wird, als High behandelt wird, sowie die Erläuterung, dass Threads, die zu keiner der obigen Kategorien passen, automatisch anhand von Heuristiken wie der Priorität zugewiesen werden.
Ein weiterer, für Messungen wichtiger Punkt: Im Batteriebetrieb kann die QoS der Vordergrundanwendung auf Medium herabgesetzt werden, wenn längere Zeit keine Benutzereingabe erfolgt. Die Dokumentation weist ausdrücklich darauf hin, dass man diese Funktion bei Leistungsmessungen im Batteriebetrieb deaktivieren sollte, und beschreibt dafür das Setzen von DisableUserPresenceQos (REG_DWORD) auf 1 unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Power\PowerThrottling. Zeigt sich bei automatisierten Tests ohne Eingabe „nur im Batteriebetrieb langsam“, lohnt es sich, zuerst hier nachzusehen.
Wichtig ist hier, dass sich die QoS bereits durch das bloße Minimieren ändern kann. Auf einem Hybrid-CPU-Notebook kommt es also ganz gewöhnlich zu Folgendem:
- Die Anwendung verlässt den Vordergrund
- Sie wird zusätzlich minimiert
- Dadurch sinkt die QoS
- Sie wird eher auf einem Effizienzkern platziert
- Das Nutzungsgefühl oder die Fristen verschlechtern sich
6.3 Thread Director und Hybrid-Scheduling
Bei Intels Hybrid-CPUs der 12. Generation und später liefert Intel Thread Director dem Betriebssystem Hinweise. Windows 11 nutzt diese, um die Zuweisung von P-Kernen und E-Kernen intelligenter zu treffen.
Darüber hinaus verfügt Windows über Richtlinien für heterogenes Scheduling.
SchedulingPolicyShortSchedulingPolicyShortThreadRuntimeThreshold
Belässt man diese auf Automatic, entscheidet das Betriebssystem anhand von QoS und Systemkonfiguration. Dahinter arbeiten außerdem die Core-Parking-Engine und die Performance-State-Engine der Prozessorenergieverwaltung.
Das Gesamtbild lässt sich grob so erfassen.
flowchart TD
t["Thread"] --> p["Priorität / dynamische Priorität"]
t --> q["QoS (High / Medium / Low / Utility / Eco / Deadline)"]
t --> v["Sichtbarkeit / Hörbarkeit / Eingabezustand"]
t --> h["Hybrid-Scheduling-Richtlinie<br/>SCHEDPOLICY / SHORTSCHEDPOLICY"]
t --> td["Intel-Thread-Director-Hinweise<br/>Windows 11 auf Intel-Hybrid-CPU"]
v --> q
p --> s["Windows-Scheduler + Processor Power Management"]
q --> s
h --> s
td --> s
s --> c["P-Kern / E-Kern und Frequenz werden festgelegt"]
7. Wann es wirkt und wann nicht
In der Praxis ist es effizienter, Fälle zu unterscheiden, in denen die Einstellung eher wirkt, von Fällen, die ein anderes Problem darstellen.
7.1 Fälle, in denen es eher wirkt
In folgenden Situationen kann Hintergrunddienste eine sinnvolle Maßnahme sein.
- Nur die kontinuierliche Hintergrundverarbeitung wird instabil, wenn man den Fokus auf eine Vordergrundanwendung legt
- Die CPU-Auslastung ist nicht ausgereizt, aber nur periodische Verarbeitung verpasst ihre Fristen
- Die kritische Verarbeitung liegt in einer Legacy-Anwendung, einem Hilfsprozess oder Worker-Thread, und MMCSS oder QoS werden nicht ausreichend genutzt
- Dienste oder residente Verarbeitung stehen im Mittelpunkt, und die Stabilität der Hintergrundverarbeitung ist wichtiger als die Reaktionsfreudigkeit der Vordergrund-UI
7.2 Fälle, in denen es kaum wirkt oder ein anderes Problem vorliegt
Umgekehrt gibt es Probleme, für die diese Einstellung allein nicht ausreicht.
- Große DPC-/ISR-Verzögerungen
- Fehler im USB-Controller oder Audiotreiber
- Auswirkungen von USB Selective Suspend oder Geräte-Energiesparfunktionen
- Thermisches Throttling
- Auswirkungen von Akkusparmodus, Power Throttling oder EcoQoS
- Zu kleine Puffergröße
- Die Anwendung nutzt MMCSS/Deadline bereits korrekt, und das Problem liegt woanders
Besonders bei Windows-11-Notebooks mit Hybrid-CPU wirken sich Änderungen der Sichtbarkeit und der QoS stark aus. Wird etwas nur beim Minimieren oder nur im Batteriebetrieb langsamer, liegt man mit einem Verdacht auf QoS/Energieverwaltung eher richtig als mit einem Verdacht auf Prozessorzeitplanung.
8. Vorgehen in der Praxis
Für eine tatsächliche Eingrenzung ist folgende Reihenfolge übersichtlich.
- Bedingungen festhalten
- Netzbetrieb oder Akku
- Energiemodus
- Puffergröße
- Zustand: Vordergrund / sichtbar / minimiert
ProgrammeundHintergrunddiensteunter gleichen Bedingungen vergleichen- Nicht nur das Gefühl, sondern Dropout-Anzahl, Glitch-Anzahl und Verarbeitungsverzögerung protokollieren
- Bei Windows 11 / Hybrid-CPU die QoS-Seite verdächtigen
- Verschlechtert es sich nur beim Minimieren?
- Ändert sich etwas im hörbaren Zustand?
- Verschlechtert es sich nur im Batteriebetrieb?
- Bei Audio oder Video zuerst MMCSS prüfen
- Teilen die wichtigen Threads Windows mit, „dies hat eine wichtige Frist“?
- Bleibt das Problem bestehen, DPC/ISR/USB/Treiber untersuchen
- Hier geht es bereits um Dinge, die vor dem Scheduler liegen
8.1 Was und wie man jeweils prüft
Damit es nicht bei „verdächtigen“ bleibt, hier konkrete Mittel zur Überprüfung.
| Was man prüfen möchte | Konkrete Vorgehensweise |
|---|---|
Die aktuelle Einstellung der Prozessorzeitplanung |
SystemPropertiesPerformance.exe öffnen oder mit dem PowerShell-Befehl aus 2.1 Win32PrioritySeparation auslesen |
| Netz-/Akkubetrieb und Energieplan | Mit powercfg /getactivescheme den aktiven Energieplan und mit powercfg /list die Liste prüfen und protokollieren |
| Ob ein Prozess energiegedrosselt wird | Im Task-Manager auf der Registerkarte „Details“ mit Rechtsklick auf die Spaltenüberschriften die Spalte für Energiedrosselung hinzufügen. Unter Windows 11 zeigt außerdem der Statusbereich der Registerkarte „Prozesse“ den Effizienzmodus an |
| Ob die QoS der Vordergrundanwendung im Batteriebetrieb sinkt | DisableUserPresenceQos aus 6.2 setzen und vergleichen, ob sich das Verhalten ändert |
| Ob wichtige Threads MMCSS nutzen können | Bei eigenem Code prüfen, ob AvSetMmThreadCharacteristics / AvSetMmMaxThreadCharacteristics aufgerufen wird und ob das zurückgegebene Handle gültig ist. Ist das der Fall, wird die Priorität entsprechend der Scheduling-Kategorie angehoben, was sich in der Thread-Liste von Process Explorer an der Priorität ablesen lässt (High: 23–26, Medium: 16–22, Low: 8–15) |
| Aufgabendefinitionen von MMCSS | Unter HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Multimedia\SystemProfile\Tasks finden sich Aufgaben wie Audio, Pro Audio, Capture und Playback, bei denen sich Scheduling Category und Priority prüfen lassen |
| DPC-/ISR-Verzögerung | Mit wpr -start GeneralProfile -filemode eine Ablaufverfolgung starten, mit wpr -stop trace.etl beenden und anschließend in WPA im DPC/ISR-Diagramm die Zeit pro Modul ansehen |
| Auf welchem Kern ein Thread lief | Dieselbe Ablaufverfolgung in WPA unter CPU Usage (Precise) öffnen und die Spalte des ausgeführten logischen Prozessors betrachten. Da die Zuordnung von logischer Prozessornummer zu P-Kern/E-Kern vom Gerät abhängt, erstellt man zuerst mit einem Tool wie Sysinternals Coreinfo eine Zuordnungstabelle. So lässt sich vergleichen, ob sich die verwendeten Nummern zwischen Vordergrund und Minimiert-Zustand ändern |
wpr ist der Befehl des Windows Performance Recorder, der im Windows ADK enthalten ist. Er wird über eine Konsole mit Administratorrechten ausgeführt.
In der Praxis ist „wurde die Frist eingehalten“ wichtiger als die durchschnittliche CPU-Auslastung. Das ist ein ziemlich zentraler Punkt.
9. Zusammenfassung
Kurz zusammengefasst, was passiert, wenn man Prozessorzeitplanung auf Hintergrunddienste stellt:
- Es ändert sich nicht die Geschwindigkeit der CPU selbst, sondern die Verteilung der CPU-Zeit zwischen Vordergrund und Hintergrund
Programmemacht die Vordergrundanwendung tendenziell angenehmerHintergrunddienstemacht die kontinuierliche Hintergrundverarbeitung widerstandsfähiger gegen Verdrängung- Deshalb kann es in Fällen wirken, in denen Hintergrundfristen wichtig sind – Audio, Video, Aufnahme, Überwachung, residente Verarbeitung
- Bei CPUs mit P-Kernen und E-Kernen wird die tatsächliche Kernplatzierung jedoch auch stark von QoS, Energierichtlinie, Hybrid-Scheduling und Thread Director bestimmt
- Auf modernem Windows ist die natürliche Sichtweise daher: Diese Einstellung kann wirken, ist aber keine alleinige Hauptrolle
Kurz gesagt: Das ist kein Regler, der die Leistung der CPU erhöht, sondern ein Regler, der ändert, wie die Arbeit verteilt wird.
Priorisiert man die Reaktionsfreudigkeit der Vordergrundanwendung oder die Einhaltung der Fristen der kontinuierlichen Hintergrundverarbeitung? Stellt man sich das als Einstellung vor, die diese Balance etwas in Richtung Hintergrund verschiebt, leuchtet es ziemlich ein.
Und im Zeitalter der Hybrid-CPU kommen darüber hinaus noch die Schichten von QoS und P-/E-Kern-Auswahl hinzu. Bezieht man das alles mit ein, wird deutlich, „warum es manchmal wirkt“ und „warum es manchmal nicht wirkt“.
10. Quellen
- Sawady: Einstellung zur Bevorzugung von Hintergrunddiensten (die CPU nicht faulenzen lassen)
- Microsoft Learn: Win32_OperatingSystem class
- Microsoft Learn: Beschreibung des Registrierungswerts Win32PrioritySeparation – Die Bedeutung der Bits und die Werte, die von der UI-Auswahl geschrieben werden.
- Microsoft Learn: Master Your Quantum – Das Quantum für jeden Wert von
Win32PrioritySeparation. - Microsoft Learn: Know Thy Tick – Der Zusammenhang zwischen Clock Tick und Quantum.
- Microsoft Learn: CPU Analysis in Windows Performance Analyzer
- Microsoft Learn: Windows Performance Recorder
- Microsoft Learn: Priority Boosts
- Microsoft Learn: Window Features
- Microsoft Learn: Quality of Service
- Microsoft Learn: SetThreadInformation function
- Microsoft Learn: SetProcessInformation function
- Microsoft Learn: Multimedia Class Scheduler Service
- Microsoft Learn: Processor power management options overview
- Microsoft Learn: SchedulingPolicy
- Microsoft Learn: ShortSchedulingPolicy
- Microsoft Learn: ShortThreadRuntimeThreshold
- Intel Support: Is Windows 10 Task Scheduler Optimized for 12th Generation Intel Core Processors?
- Intel White Paper: Intel performance hybrid architecture & software optimizations, Part Two
Verwandte Artikel
Aktuelle Artikel mit denselben Schlagwörtern führen zu verwandten Themen weiter.
CPU-Einstellungen für Windows-App-Entwickler: Priorität, Affinität und P-Kerne/E-Kerne
Für Windows-App-Entwickler: wie CPU-Priorität, Affinität, P-Kerne/E-Kerne, Energiespareinstellungen sowie EcoQoS/Efficiency Mode zusammen...
Windows NIC-Detaileinstellungen – Leitfaden zu RSS/LSO/EEE/Wake on LAN
Ein praxisorientierter Überblick über die Windows NIC-Detaileinstellungen. Jumbo Packet, Speed & Duplex, RSS, RSC, LSO, Flow Control, EEE...
Was bedeutet Windows' „Speicherauslastung“ eigentlich? — Working Set, Private Bytes, Commit und die Auslagerungsdatei richtig lesen
Der Speicherwert im Task-Manager, Working Set, Private Bytes und Commit sind nicht dasselbe. Dieser Artikel erklärt das Verhältnis von vi...
Praktische Multithreading-Best-Practices: C-Edition — Sicher schreiben nach Win32-API-Konvention
Bei Multithreading in C mit Win32 sind Thread-Erstellung über _beginthreadex, SRW-Locks und Bedingungsvariablen, Interlocked-Funktionen s...
Praktische Multithreading-Best-Practices: C++-Edition — Unfälle mit RAII und jthread strukturell beseitigen
In C++ ist Multithreading eine Welt, in der eine Datenrace zu undefiniertem Verhalten wird. Dieser Artikel behandelt die Falle des std::t...
Verwandte Themen
Diese Seiten ordnen den Artikel in einen größeren Leistungs- und Entscheidungskontext ein.
Technische Windows-Themen
Portal zu Windows-Entwicklung, Fehleranalyse und der Nutzung bestehender Assets.
Leistungen zu diesem Thema
Dieser Artikel ist direkt mit den folgenden Leistungen verbunden.
Technische Beratung und Design-Review
Windows-Scheduling, QoS, Energieeinstellungen und das Verhalten im Zeitalter von P-Kernen / E-Kernen zu ordnen, während man Design-Entscheidungen trifft, ist ein Thema, das gut zu unserer technischen Beratung und Design-Review passt.
Fehleruntersuchung und Ursachenanalyse
Der Ablauf, herauszufinden, ob Audio-Aussetzer, Dropouts oder instabile Hintergrundverarbeitung sich mit der `Prozessorzeitplanung` ändern oder stattdessen auf DPC/ISR oder Treiber zurückzuführen sind, lässt sich gut als Fehleruntersuchung und Ursachenanalyse durchführen.
Häufige Fragen
Fragen, die in Beratungen zu diesem Artikelthema häufig gestellt werden.
- Was ändert sich, wenn ich die „Prozessorzeitplanung“ auf „Hintergrunddienste“ stelle?
- Es ändert sich nicht die Geschwindigkeit oder der Takt der CPU, sondern die Art, wie CPU-Zeit zwischen der Anwendung im Vordergrund und den dahinter laufenden Prozessen verteilt wird. Intern ist die Einstellung mit Win32PrioritySeparation verknüpft und wirkt auf die Verteilung des Quantums (der Zeitscheibe) und darauf, wie stark der Vordergrund bevorzugt wird. „Programme“ bevorzugt eher die Vordergrundanwendung, „Hintergrunddienste“ behandelt Vordergrund und Hintergrund gleichmäßiger. Diese Einstellung verwandelt Ihre eigene Anwendung dabei nicht in einen Windows-Dienst.
- Warum kann „Hintergrunddienste“ Audio-Aussetzer beheben?
- Audioverarbeitung reicht es nicht, im Durchschnitt schnell zu sein – die Pufferung muss alle paar Millisekunden eine feste Frist einhalten. Bei der Einstellung „Programme“ läuft die Vordergrundanwendung tendenziell länger am Stück, sodass die Hintergrund-Audioverarbeitung im Schnitt zwar unproblematisch ist, aber genau in dem einen Moment zu spät kommt und dadurch ein Underrun entsteht. Wechselt man zu „Hintergrunddienste“, kann die dauerhaft laufende Hintergrundverarbeitung die CPU leichter zurückerobern, wodurch verpasste Fristen seltener werden. DPC-/ISR-Verzögerungen, USB-Energiesparmodi, Treiberfehler, thermisches Throttling oder Probleme durch EcoQoS werden dadurch allerdings nicht behoben.
- Läuft die Hintergrundverarbeitung dann auf einem P-Kern, wenn ich „Hintergrunddienste“ wähle?
- Nein. Ob ein Thread auf einem P-Kern oder E-Kern landet, wird heute viel stärker von QoS, der Energierichtlinie, Hybrid-Scheduling und Intel Thread Director bestimmt als von dieser Einstellung. Unter Windows 11 kann bereits das bloße Minimieren einer Anwendung deren QoS senken, und im Batteriebetrieb landet sie dann eher auf einem Effizienzkern. Wird eine Anwendung nur beim Minimieren oder nur im Batteriebetrieb langsamer, liegt der Verdacht eher bei QoS und der Energieverwaltung als bei dieser Einstellung.
- Wie grenzt man die Ursache von Audio-Aussetzern und Dropouts ein?
- Zunächst hält man Bedingungen wie Netzbetrieb, Energiemodus, Puffergröße sowie Vordergrund- bzw. Minimiert-Status fest und vergleicht „Programme“ und „Hintergrunddienste“ unter denselben Bedingungen, wobei man Dropout-Anzahl und Verarbeitungsverzögerung protokolliert. Bei einer Hybrid-CPU unter Windows 11 prüft man, ob sich das Problem nur beim Minimieren oder im Batteriebetrieb verschlechtert, und verdächtigt dann eher die QoS-Seite. Bei Audio oder Video prüft man zuerst, ob die wichtigen Threads MMCSS nutzen können, und gräbt erst danach, wenn das Problem weiterbesteht, bei DPC/ISR, USB und Treibern. An diesem Punkt geht es nicht mehr um den Scheduler.
Autorenprofil
Profilseite des Artikelautors.
Go Komura
Geschäftsführer von KomuraSoft LLC
Spezialisiert auf Windows-Softwareentwicklung, technische Beratung und Fehleranalyse, insbesondere bei bestehenden Systemen und schwer reproduzierbaren Störungen.