Améliorer la consommation énergétique et la durée de vie de la batterie en réduisant le travail en arrière-plan :

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 case activée que l’UC ne se réveille pas pour effectuer un travail inutile pendant que votre application n’est pas utilisée, vous pouvez capturer et analyser une trace à l’aide de Windows Analyseur de performances (WPA). Nous allons suivre les étapes qui expliquent comment procéder ci-dessous.

Capturer une trace et case activée pour un 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.

Programme d’installation

  1. 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.

  2. Lancez votre application et accédez à une vue qui devrait être couramment utilisée.

  3. Limitez les risques *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

  1. 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 »).

  2. Entrez la commande : wpr -start power -filemode

  3. Laissez l’appareil inactif pendant 5 minutes.

  4. Entrez la commande : wpr -stop idletrace.etl

  5. Pour ouvrir la trace à l’aide de Windows Performance Analyzer (WPA), saisir la commande : wpa.exe idletrace.etl

  6. Ouvrez le graphique Utilisation du processeur de calcul>(Précis).

    • Accédez à votre processus (ou si vous disposez d’un modèle multiprocesseur pour tous les processus liés à votre application) et évaluez le nombre de commutateurs Cswitch, « Utilisation par uc ». Dans l’idéal, elles sont aussi proches de 0 que possible pendant que l’application est en arrière-plan. La recherche des piles est un excellent moyen de trouver où les ressources sont utilisées et comment l’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é.

    Graphique WPA montrant le processus de processeur, le nombre et le pourcentage d’utilisation

  7. Ouvrez le graphique Utilisation du processeur de calcul>(échantillonné). Suivez les problèmes d’utilisation du processeur en évaluant où le temps dans le code est passé à s’exécuter.

Mesurer et évaluer vsync en attente en arrière-plan

Remarque

Concentrez-vous sur l’utilisation de base du processeur dans la section précédente avant d’examiner ce scénario plus avancé.

  1. Ouvrez une ligne de commande (Powershell ou Invite de commandes) en mode administrateur.

  2. Entrez la commande : wpr -start gpu -filemode

  3. Laissez l’appareil inactif pendant 5 minutes.

  4. Entrez la commande : wpr -stop gputrace.etl

  5. Pour ouvrir la trace à l’aide de Windows Performance Analyzer (WPA), saisir la commande : wpa.exe gputrace.etl

  6. Ouvrez le graphique des événements génériques de l’activité >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 .

    Graphique WPA montrant l’événement MS Edge webview2

Pour plus d’informations, consultez l’article Utilisation de Windows Analyseur de performances pour analyser les problèmes de secours modernes.

Ressources supplémentaires