Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questa guida illustra come migliorare il modo in cui l'applicazione Windows consuma energia, offrendo principi che consentono di migliorare le prestazioni complessive del dispositivo e la durata della batteria.
I principi più fondamentali per migliorare il consumo energetico sono garantire che, mentre l'app è in background, non:
- usare le risorse di sistema,
- riattivare la CPU tramite timer,
- riattivare la CPU attendendo gli eventi vsync.
Essere "in background" significa che l'app non è visibile, né udibile, per l'utente. Ci dovrebbero essere pochi motivi, se presenti, per riattivare la CPU o usare le risorse di sistema in background. Verifica se l'app sta attivando questi eventi e risolvendo la causa può migliorare significativamente il consumo di energia della tua app, la durata della batteria e ridurre le emissioni di carbonio risultanti dai clienti che usano la tua app.
Per verificare che la CPU non venga riattivata per eseguire operazioni non necessarie mentre l'app non è in uso, è possibile acquisire e analizzare una traccia usando Windows Performance Analyzer (WPA). Verranno illustrati i passaggi che illustrano come eseguire questa operazione di seguito.
Acquisire una traccia e verificare la presenza di operazioni non necessarie
È importante configurare le condizioni corrette durante l'esecuzione dell'app prima di acquisire una traccia per analizzare se vengono eseguite operazioni non necessarie che possono svuotare l'alimentazione. È anche possibile eseguire più tracce per testare l'app in diverse condizioni.
Setup
Porta il dispositivo di test in modalità inattiva aprendo Gestione attività e assicurandoti che l'utilizzo della CPU sia inferiore al 5%. In questo modo si riduce al minimo l'interferenza delle misurazioni e si forniscono tracce di dimensioni ragionevoli.
Avviare l'app e passare a una visualizzazione che dovrebbe essere usata comunemente.
Ridurre al minimo la tua app. *Potresti voler ripetere i passaggi seguenti mentre la finestra dell'app è completamente bloccata (bloccata dalla visualizzazione) dietro altre finestre e quando l'app è in primo piano, dopo un periodo di nessuna interazione da parte dell'utente, per garantire che il lavoro non necessario non venga avviato dall'app.
Misurare e valutare l'uso della CPU in background
Apri una riga di comando (PowerShell o Prompt dei Comandi) in modalità amministratore. Se non viene eseguito in modalità amministratore, è possibile che venga visualizzato il codice di errore: 0xc5585011 "Non è stato possibile abilitare il criterio per profilare le prestazioni del sistema".
Immettere il comando :
wpr -start power -filemodeLasciare inattiva il dispositivo per 5 minuti.
Immettere il comando :
wpr -stop idletrace.etlPer aprire la traccia usando Windows Performance Analyzer (WPA), immettere il comando :
wpa.exe idletrace.etlAprire il grafico della Computazione Utilizzo CPU (Preciso).
Passare al proprio processo (o, se si dispone di un modello multiprocesso, a tutti i processi correlati all'app) e valutare il conteggio Cswitch, "Utilizzo per CPU". Idealmente questi sono il più vicino possibile a 0 mentre l'app è in background. Esaminare gli stack è un ottimo modo per trovare dove vengono usate le risorse e come migliorarlo.
Cercare un numero eccessivo di riattivazioni aggiungendo un "Nuovo stack di thread" per vedere lo stack su cui si è riattivato il thread.
Aprire il grafico Utilizzo CPU calcolo>(sampled). Individuare i problemi di utilizzo della CPU valutando i luoghi nel codice in cui viene speso il tempo di esecuzione.
Misurare e valutare l'attesa vsync mentre si è in background
Annotazioni
Concentrarsi sull'utilizzo della CPU di base nella sezione precedente prima di analizzare questo scenario più avanzato.
Aprire una riga di comando (PowerShell o prompt dei comandi) in modalità amministratore.
Immettere il comando :
wpr -start gpu -filemodeLasciare inattiva il dispositivo per 5 minuti.
Immettere il comando :
wpr -stop gputrace.etlPer aprire la traccia usando Windows Performance Analyzer (WPA), immettere il comando :
wpa.exe gputrace.etlAprire il grafico attività di sistema>eventi generici.
- Filtra gli eventi "Microsoft-Windows-Dxgkrnl".
- Trascinare la colonna Processo in modo che sia la seconda colonna.
- Controllare se si sta chiamando in WaitForVsync. Ad esempio, tramite API come IDXGIOutput::WaitForVBlank (dxgi.h) tramite l'evento
WaitForVerticalBlankEventInternal.
Per altre informazioni, vedere l'articolo Uso di Windows Performance Analyzer per analizzare i problemi di standby moderno.