Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Ce guide montre comment améliorer la façon dont votre application Windows consomme de l’énergie, en proposant des principes pour vous aider à améliorer les performances globales des appareils et la durée de vie de la batterie.
Les principes les plus fondamentaux pour améliorer la consommation d’énergie sont de s’assurer que même si votre application est en arrière-plan, elle ne le fait pas :
- utiliser des ressources système,
- réveillez le processeur par le biais de minuteurs,
- réveillez le processeur en attendant les événements vsync.
Être « en arrière-plan » signifie que votre application n’est pas visible, ni audible, à l’utilisateur. Il doit y avoir peu de raisons, le cas échéant, de réveiller l’UC ou d’utiliser les ressources système en arrière-plan. Vérifier si votre application déclenche ces événements et s’attaquer à la cause peut améliorer considérablement la consommation d’énergie de votre application, la durée de vie de la batterie et réduire les émissions de carbone résultant des clients utilisant votre application.
Pour vérifier que le processeur ne s'active pas pour réaliser des tâches superflues pendant que votre application est inactive, vous pouvez capturer et analyser une trace à l'aide de Windows Performance Analyzer (WPA). Nous allons suivre les étapes qui expliquent comment procéder ci-dessous.
Capturer une trace et vérifier le travail inutile
Il est important de configurer les conditions correctes lors de l’exécution de votre application avant de capturer une trace pour analyser si le travail inutile est effectué qui peut vider la puissance. Vous pouvez également exécuter plusieurs traces pour tester votre application dans diverses conditions.
Paramétrage
Obtenez l’inactivité de votre appareil de test en ouvrant Le Gestionnaire des tâches et en veillant à ce que l’utilisation du processeur soit inférieure à 5%. Cela réduit les interférences de mesure et fournit des traces de taille raisonnable.
Lancez votre application et accédez à une vue qui devrait être couramment utilisée.
Réduisez votre application. *Vous pouvez répéter les étapes suivantes pendant que la fenêtre de votre application est entièrement obstruée (bloquée de l’affichage) derrière d’autres fenêtres et lorsque votre application est au premier plan, après une période d’absence d’interaction par l’utilisateur, pour vous assurer que le travail inutile n’est pas initié par l’application.
Mesurer et évaluer l’utilisation du processeur en arrière-plan
Ouvrez une ligne de commande (PowerShell ou Invite de commandes) en mode administrateur. (S’il n’est pas exécuté en mode administrateur, vous pouvez recevoir le code d’erreur : 0xc5585011, « Échec de l’activation de la stratégie pour profiler les performances du système. »)
Entrez la commande :
wpr -start power -filemodeLaissez l’appareil inactif pendant 5 minutes.
Entrez la commande :
wpr -stop idletrace.etlPour ouvrir la trace à l’aide de Windows Performance Analyzer (WPA), entrez la commande :
wpa.exe idletrace.etlOuvrez le graphique calcul>Utilisation du processeur (Précis).
Accédez à votre processus (ou si vous disposez d’un modèle multi-processus, à tous les processus liés à votre application) et évaluez le nombre de commutateurs Cswitch, « Utilisation par CPU ». Dans l’idéal, elles sont aussi proches de 0 que possible pendant que l’application est en arrière-plan. Examiner les ensembles technologiques est un excellent moyen de trouver où les ressources sont utilisées et comment les améliorer.
Recherchez des éveils excessifs en ajoutant une « Nouvelle pile de threads » pour voir la pile sur laquelle le thread s’est réveillé.
Ouvrez le graphique Computation>Utilisation du processeur (échantillonné). Suivez les problèmes d’utilisation du processeur en évaluant où le temps d'exécution est utilisé dans le code.
Mesurer et évaluer l'attente de vsync en arrière-plan
Note
Concentrez-vous sur l’utilisation de base du processeur dans la section précédente avant d’examiner ce scénario plus avancé.
Ouvrez une ligne de commande (PowerShell ou Invite de commandes) en mode administrateur.
Entrez la commande :
wpr -start gpu -filemodeLaissez l’appareil inactif pendant 5 minutes.
Entrez la commande :
wpr -stop gputrace.etlPour ouvrir la trace à l’aide de Windows Performance Analyzer (WPA), entrez la commande :
wpa.exe gputrace.etlOuvrez le graphiquedes événements génériques> système.
- Filtrez les événements « Microsoft-Windows-Dxgkrnl ».
- Faites glisser la colonne Processus vers la 2e colonne.
- Vérifiez si vous appelez dans WaitForVsync. Par exemple, via des API comme IDXGIOutput ::WaitForVBlank (dxgi.h) via l’événement
WaitForVerticalBlankEventInternal.
Pour en savoir plus, consultez l’article Utilisation de Windows Performance Analyzer pour analyser les problèmes de secours modernes.
Ressources additionnelles
Windows developer