De game hapert, je drukt op Ctrl+Shift+Esc, en de tabel beweegt al: het CPU-cijfer van de game ziet er bescheiden uit, de kolom GPU komt lang niet aan 100, "System interrupts" staat bijna bovenaan, en naast een browser staat een klein blaadje. Elke waarde meet iets specifieks, en wie er één verkeerd leest, gaat achter de verkeerde oplossing aan.
Open het en kies de pagina
Druk op Ctrl+Shift+Esc, of klik met de rechtermuisknop op Start en selecteer Taakbeheer. Opent het als een korte lijst, selecteer dan Meer details. Twee pagina's beantwoorden de vraag "wat draait er":
- Processen, die het probleemoplossingsartikel van Microsoft over Taakbeheer omschrijft als een "Lijst met apps en achtergrondprocessen en het resourcegebruik van elke app". De rijen zijn gegroepeerd onder "Apps", "Background processes" (achtergrondprocessen) en "Windows processes" (Windows-processen), en de onderliggende processen van een programma vallen samen onder één rij die je kunt uitvouwen.
- De pagina Details: elk proces op een eigen rij, "ongeacht of het apps of achtergrondprocessen zijn", met meer gegevens per proces. Hier stel je de prioriteit in.
Klik op de pagina Details met de rechtermuisknop op een kolomkop en kies Kolommen selecteren om toe te voegen wat je nodig hebt.
De kolom CPU is een aandeel van de hele processor
Het CPU-cijfer is een percentage van alle logische processors samen. Het voorbeeld van Microsoft gebruikt er acht: een proces dat 12,5 procent van de CPU-capaciteit gebruikt, gebruikt volgens Microsoft "het equivalent van één volledige CPU". Een game die op zo'n machine 12,5% toont, kan dus een thread hebben die geen tijd over heeft, en het totaal vertelt je dat niet.
Om dat te zien open je Prestaties > CPU, klik je met de rechtermuisknop op de grafiek en kies je Grafiek wijzigen in > Logische processors; de grafiek splitst zich in één grafiek per logische processor. Kerneltijden weergeven in hetzelfde menu splitst de lijn in twee kleuren, kernel en gebruiker. Zit één processor bijna aan zijn plafond terwijl de videokaart niet druk is, dan legt GPU niet op 100% uit hoe je dat leest.
De kolom GPU is de drukste engine
Een GPU bestaat uit engines die parallel kunnen werken, en de kolom moet één cijfer kiezen. De post van het DirectX-team over GPU's in Taakbeheer legt de keuze uit: de kolom toont "the utilization of the busiest engine, across all GPUs, for that process". De kolom "GPU engine" noemt bij welke GPU en welke engine dat cijfer hoort, zoals "3D", "Copy", "Video Decode" of "Video Encode". Op een pc met twee GPU's is dat de snelle controle op welke ervan een game terechtkwam; op welke videokaart een game draait behandelt hoe je dat verandert.
Prestaties > GPU toont twee soorten geheugen. "Dedicated GPU memory" is volgens de post "exclusively reserved for use by the GPU"; "Shared GPU memory" is "normal system memory that can be used by either the GPU or the CPU". De pagina Details kan ze allebei per proces tonen via Kolommen selecteren, en te weinig VRAM is de pagina om ze tijdens een game te lezen. Naast een losse videokaart toont de pagina Prestaties ook de temperatuur ervan in graden Celsius; de aankondiging van Microsoft uit 2019 zei dat daarvoor een stuurprogramma nodig is dat WDDM 2.4 of later ondersteunt.
Opstart-apps: de impact wordt gemeten bij het opstarten
De pagina Opstart-apps, ook te vinden via Instellingen > Apps > Opstarten, toont wat met Windows mee opstart. De kolom "Startup impact" meet het opstarten, volgens de pagina van Microsoft over opstart-apps: lage impact is minder dan 300 milliseconden CPU en minder dan 292 kilobytes schijf, hoge impact is meer dan 1 seconde CPU of meer dan 3 megabytes schijf. Een hoge impact vertelt je wat een app kost terwijl Windows opstart, niet wat hij doet zodra een game draait. Zoek hem daarvoor op de pagina Processen terwijl je speelt.
Het blaadje is "Efficiency mode"
Toen het prestatieteam van Windows Efficiency mode introduceerde, beschreef het twee wijzigingen: de modus verlaagt de basisprioriteit van het proces naar laag en zet de QoS-modus op EcoQoS, en EcoQoS kan volgens het team betekenen dat de processor op een lagere frequentie draait om energie te besparen. Een proces in die modus toont "Efficiency mode" in de kolom Status en een blaadje als pictogram. Is de optie grijs, dan gaat het volgens de post om een kernproces van Windows, en kan het afremmen ervan het systeem beïnvloeden. Dezelfde post zei dat Edge en Chrome experimenteerden met het verlagen van hun eigen basisprioriteit en met API's voor energie-efficiëntie, wat Taakbeheer ook als Efficiency mode toont, dus een blaadje dat je nooit zelf hebt ingesteld is geen fout.
Het is bedoeld voor achtergrondwerk. Toegepast op de game verlaagt het de prioriteit van de game zelf.
"System interrupts" is geen programma
Taakbeheer beschrijft deze rij als "Deferred procedure calls and interrupt service routines": tijd die de processor besteedt aan de interruptcode van stuurprogramma's in plaats van aan een app. Een gearchiveerde blogpost van Microsoft noemde deze routines "the silent killers of system performance": het is volgens de post de code met de hoogste prioriteit die in het systeem draait, en als ze te lang of te vaak draaien, kunnen ze haperingen in audio en video en een bevriezende muis veroorzaken. Een hoog of piekend cijfer hier wijst naar stuurprogramma's, en DPC-latency: wanneer het stuurprogramma zelf de hapering is laat zien hoe je vindt welk.
Prioriteit: wat "Set priority" verandert, en hoe lang
Klik op de pagina Details met de rechtermuisknop op een proces en kies "Set priority" (prioriteit instellen): "Realtime", "High", "Above normal", "Normal", "Below normal" of "Low"; de kolom "Base priority" toont de huidige. Prioriteit bepaalt wie eerst draait wanneer threads strijden om een processor: in de planningsdocumentatie van Microsoft onderbreekt een thread met een hogere prioriteit die gereed wordt een thread met een lagere prioriteit. Dezelfde pagina zegt dat de prioriteitsklasse van een proces standaard NORMAL_PRIORITY_CLASS is, gekozen wanneer het proces wordt gemaakt. Een wijziging in Taakbeheer duurt dus tot de game sluit; de volgende start begint weer op "Normal", tenzij wat de game start een andere klasse instelt of doorgeeft.
Drie waarschuwingen:
- Dezelfde documentatie zegt: "You should almost never use REALTIME_PRIORITY_CLASS, because this interrupts system threads that manage mouse input, keyboard input, and background disk flushing." Taakbeheer kan ook antwoorden met "Unable to set priority to Realtime. The priority was set to High instead."
- "High" heeft een eigen waarschuwing: "a high-priority class application can use nearly all available CPU time".
- Sommige processen weigeren elke wijziging ("Unable to change priority"). Beveiligde processen bijvoorbeeld geven het toegangsrecht dat een prioriteitswijziging nodig heeft niet af.
Komt een game steeds op een prioriteit die je nooit hebt gekozen, dan stelt de game zelf, zijn launcher of een blijvende regel die bij elke start in. De kaart Prioriteiten van games en apps van w0a verwijdert blijvende regels voor hoge prioriteit, en de I/O-prioriteit die ermee is opgeslagen, welke tool ze ook schreef: zoek op de pagina Fix naar oncelik en druk op de knop op de kaart (Prioriteiten van games en apps).
Schijf en netwerk: "Resource Monitor"
Taakbeheer heeft een opdracht "Open Resource Monitor", en perfmon /res opent die direct. Het tabblad "Disk" toont "Processes with Disk Activity" en, onder "Disk Activity", elk bestand dat gelezen of geschreven wordt, met "Read (B/sec)", "Write (B/sec)" en "Response Time (ms)". Het tabblad "Network" toont "Processes with Network Activity" en "TCP Connections". Zo koppel je een schijfpiek aan één proces en één bestand; Schijf op 100% in Taakbeheer gaat daar verder.
Een proces beëindigen
Toen Microsoft Taakbeheer voor Windows 8 opnieuw ontwierp, beschreef het Taak beëindigen als iets dat meteen werkt, zonder "Are you sure?" en zonder vraag om op te slaan. Het zei ook dat apps over het algemeen veilig te beëindigen zijn, terwijl het beëindigen van sommige Windows-processen een blauw scherm kan veroorzaken. Op de pagina Details vraagt het beëindigen van een proces eerst om bevestiging, en die vraag waarschuwt: "If you end a system process, it might result in system instability." Reageert een game nog, sla dan op en sluit hem via zijn eigen menu.
Wat niet helpt
- Realtime voor de game. Dat kan de systeemthreads onderbreken die muis- en toetsenbordinvoer afhandelen, zoals de waarschuwing hierboven zegt.
- Windows-processen beëindigen om middelen vrij te maken. Het beëindigen van sommige ervan kan een blauw scherm veroorzaken.
- Prestatiemeteritems uitzetten. Sommige optimalisatiegidsen schrijven een waarde, Disable Performance Counters, die ze uitzet. Vindt de Prestatiemeter helemaal geen itemsets, of ziet een monitoringtool geen gegevens, dan verwijdert de kaart Prestatiemeteritems van w0a die waarde: zoek op de pagina Fix naar
performansen druk op de knop op de kaart (Prestatiemeteritems).
Gerelateerd
- DPC-latency: wanneer het stuurprogramma zelf de hapering is
- GPU niet op 100%: hoe je een CPU-flessenhals van iets anders onderscheidt
- Schijf op 100% in Taakbeheer: de oorzaak vinden
- Te weinig VRAM: wat er gebeurt en hoe je het controleert
- Antimalware Service Executable gebruikt CPU tijdens het gamen
Heeft deze pagina geholpen?
Wat ontbrak, of wat werkte er niet? We lezen elk van deze berichten.
Heeft deze pagina het niet opgelost, schrijf ons dan — noem het artikel dat je hebt gelezen, dan verbeteren we het.