Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Den här guiden visar hur du kan förbättra hur ditt Windows-program förbrukar ström och erbjuder principer som hjälper dig att förbättra enhetens övergripande prestanda och batteritid.
De mest grundläggande principerna för att förbättra energiförbrukningen är att se till att även om appen finns i bakgrunden gör den inte följande:
- använda systemresurser,
- väcka processorn genom timerar
- aktivera processorn genom att vänta på vsync-händelser.
Att vara "i bakgrunden" innebär att appen inte är synlig eller hörbar för användaren. Det bör finnas få, om några, skäl att väcka processorn eller använda systemresurser i bakgrunden. Att kontrollera om din app utlöser dessa händelser och åtgärda orsaken kan avsevärt förbättra appens strömförbrukning, batteritid och minska de koldioxidutsläpp som kommer att uppstå från kunder som använder din app.
Om du vill kontrollera att processorn inte vaknar för att utföra onödigt arbete medan appen inte används kan du samla in och analysera en spårning med hjälp av Windows Performance Analyzer (WPA).. Vi kommer att gå igenom stegen som förklarar hur man gör detta nedan.
Samla in en logg och sök efter onödigt arbete
Det är viktigt att konfigurera rätt villkor när du kör appen innan du samlar in en spårning för att analysera om onödigt arbete utförs som kan tömma ström. Du kanske också vill köra flera spårningar för att testa din app under olika förhållanden.
Inställningar
Få testenheten att vara inaktiv genom att öppna Aktivitetshanteraren och se till att processoranvändningen är mindre än 5%. Detta minimerar mätningsinterferensen och ger rimliga storleksspårningar.
Starta appen och navigera till en vy som förväntas användas ofta.
Minimera din app. *Du kanske vill upprepa följande steg medan appfönstret är helt täckt bakom andra fönster och när din app är i förgrunden, efter en period utan användarens interaktion, för att säkerställa att onödigt arbete inte initieras av appen.
Mäta och utvärdera CPU-användning i bakgrunden
Öppna en kommandorad (PowerShell eller kommandotolken) i administratörsläge. (Om du inte kör i administratörsläge kan du få felkod: 0xc5585011, "Det gick inte att aktivera principen för att profilera systemprestanda.")
Ange kommandot:
wpr -start power -filemodeLåt enheten vara inaktiv i 5 minuter.
Ange kommandot:
wpr -stop idletrace.etlOm du vill öppna spårningen med hjälp av Windows Performance Analyzer (WPA) anger du kommandot:
wpa.exe idletrace.etlÖppna diagrammet Beräkningsprocessoranvändning>(Exakt).
Gå till din process (eller om du har en modell med flera processer som är relaterade till din app) och utvärdera Cswitch-antalet , "Användning efter CPU". Helst är dessa så nära 0 som möjligt medan appen är i bakgrunden. Att titta på staplarna är ett bra sätt att ta reda på var resurser används och hur du kan förbättra dem.
Leta efter överdrivna väckningar genom att lägga till en "Ny trådstack" för att se vilken stack tråden vaknade på.
Öppna diagrammet> (exempel). Spåra problem med cpu-användning genom att utvärdera var tid i koden som används för att köra.
Mäta och utvärdera väntetid för vsync i bakgrunden
Anmärkning
Fokusera på grundläggande CPU-användning i föregående avsnitt innan du undersöker det här mer avancerade scenariot.
Öppna en kommandorad (PowerShell eller kommandotolken) i administratörsläge.
Ange kommandot:
wpr -start gpu -filemodeLåt enheten vara inaktiv i 5 minuter.
Ange kommandot:
wpr -stop gputrace.etlOm du vill öppna spårningen med hjälp av Windows Performance Analyzer (WPA) anger du kommandot:
wpa.exe gputrace.etlÖppna diagrammetAllmänna händelser för >.
- Filtrera till "Microsoft-Windows-Dxgkrnl"-händelser.
- Dra kolumnen Process till den andra kolumnen.
- Kontrollera om du anropar WaitForVsync. Till exempel via API:er som IDXGIOutput::WaitForVBlank (dxgi.h) via
WaitForVerticalBlankEventInternalhändelsen.
Mer information finns i artikeln Använda Windows Performance Analyzer för att analysera problem med modern vänteläge.
Ytterligare resurser
Windows developer