Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
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 basale principes voor het verbeteren van het energieverbruik zijn ervoor te zorgen dat uw app, wanneer deze op de achtergrond draait, 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 van uw app, de levensduur van de batterij en de koolstofuitstoot verminderen die het gevolg is van klanten die uw app gebruiken.
Als u wilt controleren of de CPU niet wordt geactiveerd om onnodig werk te doen terwijl uw app niet in gebruik is, kunt u een trace vastleggen en analyseren met Windows Performance Analyzer (WPA) gebruiken. 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.
Configuratie
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.
Start uw app en navigeer naar een weergave die naar verwachting vaak wordt gebruikt.
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
Open een opdrachtregel (PowerShell of opdrachtprompt) in administratormodus. (Als deze niet wordt uitgevoerd in de beheermodus, wordt mogelijk foutcode weergegeven: 0xc5585011, 'Kan het beleid niet inschakelen om de systeemprestaties te profilen.'
Voer de opdracht in:
wpr -start power -filemodeLaat het apparaat 5 minuten inactief.
Voer de opdracht in:
wpr -stop idletrace.etlVoer de opdracht in om de trace te openen met Windows Performance Analyzer (WPA):
wpa.exe idletrace.etlOpen de grafiek voor Berekening>CPU-gebruik (nauwkeurig).
Navigeer naar uw proces (of, als u een model met meerdere processen heeft dat gerelateerd is aan uw app) en evalueer het aantal Cswitch, "Gebruik door 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 ontwakingen door een "Nieuwe Thread Stack" toe te voegen om te zien op welke stapel de thread ontwaakte.
Open de grafiek Computation>CPU-gebruik (gemonitord). Houd CPU-gebruiksproblemen bij door te evalueren waar in de code de tijd wordt besteed aan uitvoeren.
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.
Open een opdrachtregel (PowerShell of opdrachtprompt) in de beheerdersmodus.
Voer de opdracht in:
wpr -start gpu -filemodeLaat het apparaat 5 minuten inactief.
Voer de opdracht in:
wpr -stop gputrace.etlVoer de opdracht in om de trace te openen met Windows Performance Analyzer (WPA):
wpa.exe gputrace.etlOpen de grafiek Systeemactiviteit>Algemene gebeurtenissen.
- Filter op 'Microsoft-Windows-Dxgkrnl'-gebeurtenissen.
- Versleep de kolom Proces zodat het de tweede kolom wordt.
- Controleer of u WaitForVsync aanroept. Bijvoorbeeld via API's zoals IDXGIOutput::WaitForVBlank (dxgi.h) via de
WaitForVerticalBlankEventInternalgebeurtenis.
Zie het artikel Windows Performance Analyzer gebruiken om moderne stand-byproblemen te analyseren voor meer informatie.
Aanvullende bronnen
Windows developer