Delen via


Het energieverbruik en de levensduur van de batterij verbeteren door het minimaliseren van het achtergrondwerk

In deze handleiding wordt uitgelegd hoe u de manier kunt verbeteren waarop uw Windows-toepassing energie verbruikt en principes biedt om u te helpen de algehele prestaties en levensduur van het apparaat te verbeteren.

De meest basisprincipes voor het verbeteren van het energieverbruik zijn ervoor te zorgen dat uw app op de achtergrond staat, niet:

  • systeembronnen gebruiken,
  • de CPU wakker maken via timers,
  • activeer de CPU door te wachten op vsync-gebeurtenissen.

Als u 'op de achtergrond' staat, betekent dit dat uw app niet zichtbaar of hoorbaar is voor de gebruiker. Er moeten weinig, indien van toepassing, redenen zijn om de CPU te activeren of systeembronnen op de achtergrond te gebruiken. Controleren of uw app deze gebeurtenissen activeert en de oorzaak aanpakt, kan het energieverbruik, de levensduur van de batterij van uw app aanzienlijk verbeteren en de koolstofuitstoot verminderen die het gevolg is van klanten die uw app gebruiken.

Als u wilt nagaan of de CPU niet onnodig wordt geactiveerd terwijl uw app niet in gebruik is, kunt u een trace vastleggen en analyseren met Windows Performance Analyzer (WPA). Hieronder wordt uitgelegd hoe u dit doet.

Een trace vastleggen en controleren op onnodig werk

Het is belangrijk om de juiste voorwaarden in te stellen bij het uitvoeren van uw app voordat u een tracering vastlegt om te analyseren of onnodig werk wordt uitgevoerd dat stroom kan leegmaken. U kunt ook meerdere traceringen uitvoeren om uw app onder verschillende omstandigheden te testen.

Installatie

  1. Haal uw testapparaat inactief door Taakbeheer te openen en ervoor te zorgen dat het CPU-gebruik minder dan 5%is. Als u dit doet, wordt de interferentie van de meting geminimaliseerd en worden traceringen van redelijke grootte geboden.

  2. Start uw app en navigeer naar een weergave die naar verwachting vaak wordt gebruikt.

  3. Minimaliseer uw app. *Mogelijk wilt u de volgende stappen herhalen terwijl uw app-venster volledig is opgenomen (geblokkeerd voor weergave) achter andere vensters en wanneer uw app zich op de voorgrond bevindt, na een periode van geen interactie door de gebruiker, om ervoor te zorgen dat onnodig werk niet door de app wordt gestart.

CPU-gebruik meten en evalueren op de achtergrond

  1. Open een opdrachtregel (PowerShell of opdrachtprompt) in de beheerdersmodus. (Als deze niet wordt uitgevoerd in de beheermodus, wordt mogelijk foutcode weergegeven: 0xc5585011, 'Kan het beleid niet inschakelen om de systeemprestaties te profilen.'

  2. Voer de opdracht in: wpr -start power -filemode

  3. Laat het apparaat 5 minuten inactief.

  4. Voer de opdracht in: wpr -stop idletrace.etl

  5. nl-NL: Om de tracering te openen, gebruik het commando: Windows Performance Analyzer (WPA) gebruikenwpa.exe idletrace.etl

  6. Open de Berekening>CPU-gebruik (nauwkeurig) grafiek.

    • Navigeer naar uw proces (of als u een model met meerdere processen hebt dat betrekking heeft op uw app) en evalueer het aantal Cswitchs , 'Gebruik per CPU'. In het ideale voorbeeld zijn deze zo dicht mogelijk bij 0 terwijl de app op de achtergrond is. Als u de stacks bekijkt, kunt u vinden waar resources worden gebruikt en hoe u deze kunt verbeteren.

    • Zoek naar overmatige ontwaakingen door een 'Nieuwe threadstack' toe te voegen om te zien op welke stapel de thread is geactiveerd.

    WPA-grafiek met CPU-proces, aantal en percentage van het gebruik

  7. Open de grafiek CPU-gebruik>(sampled) voor berekeningen. Spoor cpu-gebruiksproblemen op door te evalueren waar binnen de code tijd wordt besteed aan uitvoering.

Vsync-wachttijden meten en evalueren op de achtergrond

Opmerking

Richt u op het basis-CPU-gebruik in de vorige sectie voordat u dit geavanceerdere scenario onderzoekt.

  1. Open een opdrachtprompt (PowerShell of opdrachtprompt) in de beheerdersmodus.

  2. Voer de opdracht in: wpr -start gpu -filemode

  3. Laat het apparaat 5 minuten inactief.

  4. Voer de opdracht in: wpr -stop gputrace.etl

  5. Om de trace te openen met Windows Performance Analyzer (WPA), voer de opdracht in: wpa.exe gputrace.etl

  6. Open de grafiek van systeemactiviteit>algemene gebeurtenissen.

    • Filter op 'Microsoft-Windows-Dxgkrnl'-gebeurtenissen.
    • Sleep de kolom Proces naar de tweede kolom.
    • Controleer of u WaitForVsync aanroept. Bijvoorbeeld via API's zoals IDXGIOutput::WaitForVBlank (dxgi.h) via de WaitForVerticalBlankEventInternal gebeurtenis.

    WPA-grafiek met MS Edge-webview2-gebeurtenis

Zie het artikel Windows Performance Analyzer gebruiken om moderne stand-byproblemen te analyseren voor meer informatie.

Aanvullende bronnen