Analyser l'utilisation de l'énergie dans les applications du Windows Store
Le profileur Consommation d'énergie de Visual Studio vous permet d'analyser la consommation d'énergie des applications Windows Store sur les tablettes de faible puissance qui fonctionnent tout le temps ou une partie du temps sur leurs propres batteries. Sur un appareil muni d'une batterie, une application qui utilise trop d'énergie peut tellement mécontenter le client qu'il finit par la désinstaller. En optimisant la consommation d'énergie, vous pouvez augmenter l'adoption et l'utilisation de votre application par les clients.
Sommaire
Présentation du profileur Consommation d'énergie, de son fonctionnement et de ce qu'il mesure
Identifier les scénarios avec des marques utilisateur
Configurer votre environnement pour le profilage
Collecter des données de profil d'énergie pour votre application
Collecter des données de profil d'énergie pour une application installée
Analyser des données de profil d'énergie
Optimiser l'utilisation de l'énergie
Autres ressources
Présentation du profileur Consommation d'énergie, de son fonctionnement et de ce qu'il mesure
Le profileur Consommation d'énergie capture les activités de l'affichage, de l'UC et des connexions réseau d'un appareil pendant une session de profilage. Il génère ensuite les estimations de l'énergie utilisée pour ces activités et la quantité totale d'énergie pour la session de profilage.
Notes
Le profileur d'énergie estime l'utilisation d'énergie en utilisant un modèle logiciel d'appareil de référence standard, représentatif des tablettes de faible puissance sur lesquelles votre application peut s'exécuter.Pour obtenir les meilleures estimations, nous vous recommandons de collecter les données de profil sur une tablette de faible puissance.
Le modèle fournit, certes, de bonnes estimations pour divers appareils de faible puissance, mais les valeurs réelles de l'appareil que vous profilez seront probablement différentes.Utilisez les valeurs pour identifier les activités d'affichage, les activités du processeur et les activités réseau qui sont coûteuses par rapport à d'autres utilisations de ressources et qui, de ce fait, peuvent être de bons candidats pour l'optimisation.
Le profileur Consommation d'énergie utilise les définitions ci-dessous de la puissance et de l'énergie.
La puissance mesure la vitesse à laquelle la force est utilisée pour effectuer le travail exécuté sur une période. En électricité, l'unité de puissance standard est le watt, qui se définit comme le taux de travail exécuté lorsqu'un courant d'un ampère parcourt une différence de potentiel électrique d'un volt. Dans le graphique Consommation d'énergie, les unités sont affichées en milliwatts (mW). Un milliwatt représente un millième (10 -3) de watt.
Étant donné que la puissance est un taux, elle a un sens (le travail peut augmenter ou diminuer sur une période donnée) et une vitesse (la quantité d'augmentation ou de diminution du travail).
L'énergie mesure la quantité totale d'énergie, en tant que capacité ou potentiel et en tant que capacité d'énergie d'une batterie ou quantité totale d'énergie dépensée sur une période donnée. L'unité d'énergie est le watt-heure, qui correspond à la quantité d'énergie d'un watt constamment appliqué pendant une heure. Dans le Résumé d'énergie, les unités sont affichées sous forme de milliwatts heure mW-h.
Par exemple, la batterie entièrement chargée d'une tablette stocke une certaine quantité d'énergie. Lorsque l'énergie est utilisée pour effectuer des tâches telles que la communication sur un réseau, le calcul de valeurs ou l'affichage de graphiques, la puissance de la batterie se dissipe à différentes vitesses. Pour une période donnée, la puissance totale consommée est également mesurée en énergie.
Identifier les scénarios avec des marques utilisateur
Vous pouvez ajouter des marques utilisateur à vos données de profilage pour vous aider à identifier des zones dans la chronologie.
La marque apparaît sous la forme d'un triangle orange dans la chronologie lorsque la méthode est exécutée. Le message et l'heure s'affichent sous la forme d'une info-bulle lorsque vous pointez sur la marque. Si plusieurs marques utilisateur sont proches, les marques sont fusionnées et les données de l'info-bulle sont rassemblées. Vous pouvez effectuer un zoom avant sur la chronologie pour dissocier les marques.
Ajouter des marques à un code C#, Visual Basic ou C++
Pour ajouter une marque utilisateur à du code C#, Visual Basic ou C++, commencez par créer un objet Windows.Foundation.Diagnostics LoggingChannel. Insérez ensuite des appels aux méthodes LoggingChannel.LogMessage aux points de votre code que vous souhaitez marquer. Utilisez LoggingLevel.Information dans les appels.
Lorsque la méthode s'exécute, une marque utilisateur est ajoutée aux données de profilage, ainsi qu'un message.
Notes
-
Windows.Foundation.Diagnostics LoggingChannel implémente l'interface Windows.Foundation.IClosable (projetée en tant que System.IDisposable en C# et VB). Pour éviter la fuite des ressources du système d'exploitation, appelez LoggingChannel.CloseClose() (Dispose()en C# et VB) quand vous avez terminé d'utiliser un canal d'enregistrement.
-
Chaque canal d'enregistrement ouvert doit avoir un nom unique.La tentative de création d'un canal d'enregistrement avec un nom identique comme un canal non supprimé entraîne une exception.
Voir l'exemple LoggingSession du SDK Windows pour obtenir plus d'informations.
Ajouter des marques au code JavaScript
Pour ajouter des marques utilisateur, ajoutez le code suivant aux points de votre code que vous souhaitez marquer :
if (performance && performance.mark) {
performance.mark(markDescription);
}
markDescription est une chaîne contenant le message à afficher dans l'info-bulle de l'utilisateur.
Configurer votre environnement pour le profilage
Pour obtenir de bonnes estimations, vous souhaiterez profiler l'utilisation de l'énergie de l'application sur un appareil de faible puissance alimenté par ses batteries. Étant donné que Visual Studio ne fonctionne pas sur la plupart de ces appareils, vous devez connecter votre ordinateur Visual Studio à l'appareil à l'aide des outils de contrôle à distance Visual Studio. Pour se connecter à un appareil distant, vous devez configurer le projet Visual Studio et l'appareil distant. Pour plus d'informations, consultez Exécuter des applications du Windows Store sur un ordinateur distant à partir de Visual Studio.
Conseil
-
Nous ne recommandons pas le profilage d'énergie sur le simulateur Windows Store ou sur l'ordinateur Visual Studio.Le profilage effectué sur l'appareil effectif fournit des données beaucoup plus réalistes.
-
Profilez sur l'appareil cible alors qu'il est alimenté par ses batteries.
-
Fermez les applications qui utilisent peut-être les mêmes ressources (réseau, processeur ou affichage).
Collecter des données de profil d'énergie pour votre application
Dans le menu Déboguer, sélectionnez Performances et diagnostics.
Choisissez Consommation d'énergie puis Démarrer.
Notes
Lorsque vous démarrez le profileur Consommation d'énergie, la fenêtre Contrôle de compte d'utilisateur peut s'afficher et vous demander l'autorisation d'exécuter VsEtwCollector.exe.Cliquez sur Oui.
Testez votre application pour collecter des données.
Pour arrêter le profilage, rebasculez vers Visual Studio (Alt + Tab) et cliquez sur Arrêter la collecte sur la page du hub de diagnostic.
Visual Studio analyse les données collectées et affiche les résultats.
Collecter des données de profil d'énergie pour une application installée
L'outil Consommation d'énergie peut uniquement être exécuté sur les applications du Windows Store pour Windows 8.1 lancées à partir d'une solution Visual Studio ou installées depuis Windows Store. Lorsqu'une solution est ouverte dans Visual Studio, la cible par défaut est le Projet de démarrage. Pour cibler une application installée :
Sélectionnez Modifier la cible, puis Application installée.
Dans la liste Sélectionner le package d'application installé, sélectionnez la cible.
Sélectionnez Consommation d'énergie dans la page du hub de diagnostic.
Sélectionnez Démarrer pour commencer le profilage.
Pour arrêter le profilage, rebasculez vers Visual Studio (Alt + Tab) et cliquez sur Arrêter la collecte sur la page du hub de diagnostic.
Analyser des données de profil d'énergie
Les données de profil d'énergie s'affichent dans la fenêtre de document de Visual Studio :
Le fichier de rapport est nommé ReportAAAAMMJJ-HHMM.diagsession. Vous pouvez modifier le nom du rapport si vous décidez de l'enregistrer. |
|
La chronologie indique la durée de la session de profilage, les événements d'activation du cycle de vie de l'application et les marques utilisateur. |
|
Vous pouvez limiter le rapport à une partie de la chronologie en faisant glisser les barres bleues pour sélectionner une zone de la chronologie. |
|
Le graphique Consommation d'énergie est un graphique à courbes qui affiche la modification de la puissance de sortie provoquée par une ressource de l'appareil pendant une session de profilage. Le profileur Consommation d'énergie suit l'énergie utilisée par le processeur, l'activité réseau et l'écran. |
|
Le graphique Ressources (activées/désactivées) fournit des détails sur les coûts d'énergie de réseau. La barre Réseau représente le temps pendant lequel la connexion réseau a été ouverte. La barre enfant Transfert de données est la durée pendant laquelle l'application a reçu ou envoyé des données via le réseau. |
|
Le Résumé de la consommation d'énergie montre le montant proportionnel de l'énergie totale utilisée dans la chronologie sélectionnée par le processeur, l'activité réseau et l'écran. |
Pour analyser les données de profil d'énergie
Recherchez une zone dans laquelle l'énergie utilisée par une ressource a atteint un pic. Associez la zone du pic aux fonctionnalités de votre application. Utilisez ensuite les barres de contrôles de chronologie sur la chronologie pour effectuer un zoom avant sur la zone. Si vous avez le focus sur l'utilisation du réseau, développez le nœud Réseau dans le graphique Ressources (activées/désactivées) pour comparer la durée pendant laquelle la connexion est restée ouverte à la durée pendant laquelle l'application a reçu ou transféré des données via la connexion. La réduction de la durée pendant laquelle le réseau est ouvert inutilement constitue une optimisation particulièrement efficace.
Optimiser l'utilisation de l'énergie
En plus de transmettre les données, les connexions réseau demandent des frais d'énergie pour initialiser, maintenir et arrêter la connexion. Certains réseaux maintiennent la connexion pendant un certain temps après l'envoi ou la réception des données pour autoriser la transmission de données supplémentaires via une seule connexion. Vous pouvez utiliser le volet Ressources (activées/désactivées) pour examiner la façon dont votre application interagit avec la connexion.
Si les barres Réseau et Transfert de données indiquent que la connexion est ouverte pendant de longues périodes pour transmettre par intermittence une série de petits paquets de données, vous pouvez traiter les données par lots pour les envoyer en une seule transmission, réduire la durée d'ouverture du réseau et économiser ainsi un coût énergétique.
Vous avez moins de contrôle sur les coûts d'énergie de l'écran. La plupart des écrans ont besoin de plus d'énergie pour afficher les couleurs claires que les couleurs foncées. L'utilisation d'un arrière-plan sombre permet donc de réduire les coûts.
Autres ressources
Les sections État de la connexion et Gestion des coûts de C#/VB/C++ et XAML et JavaScript et HTML dans le Centre de développement Windows décrivent les API Windows qui fournissent des informations de connectivité réseau que votre application peut utiliser pour réduire le coût du trafic réseau.
Le simulateur de Visual Studio pour les applications Windows Store vous permet de simuler les propriétés de connexion de données des API d'informations réseau. Consultez Exécuter des applications du Windows Store dans le simulateur.
Les outils Minutage de fonction JavaScript et Utilisation de l'UC peuvent vous aider à réduire la charge processeur quand elle est due à des fonctions inefficaces. Voir Analyser l'utilisation de l'UC dans les applications du Windows Store, Collecter des données de minutage de fonction JavaScript dans les applications du Windows Store sur un ordinateur local et Collecter des données de temporisation de fonction JavaScript dans les applications du Store sur un appareil distant