Notes
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.
Cette rubrique décrit comment utiliser les outils de contrôle des performances de la boîte à outils Windows Performance Toolkit pour produire des profils de performances approfondis pour les applications WinUI.
Comment utiliser l’Enregistreur de Performances Windows pour surveiller les applications WinUI ?
L’enregistreur de performances Windows (WPR) peut être utilisé pour créer des enregistrements détaillés d’Event Tracing for Windows (ETW) du comportement du système et de l’application et de l’utilisation des ressources sur la base de profils intégrés. Ces enregistrements ETW peuvent ensuite être traités par le Windows Performance Analyzer (WPA) pour produire un ensemble de graphiques et de tableaux facilitant la consommation et l’analyse approfondie de l’utilisation du processeur, des problèmes d’alimentation, des mauvaises performances du système ou de l’application, et d’autres problèmes de performance.
Remarque
Bien qu’il existe des versions GUI et ligne de commande du WPR, cette rubrique ne concerne que la version GUI (voir Introduction au WPR pour plus de détails sur les deux versions).
Profils WPR
Les profils WPR sont utilisés pour collecter des informations sur divers aspects et comportements de votre application.
Dans l’image suivante, la fenêtre de l’Enregistreur de performances Windows est affichée avec le profil « Utilisation du processeur » (utilisation du processeur pour chaque unité centrale du système) et le profil « Activité XAML » (événements provenant de fournisseurs liés à XAML, tels que WinUI) sélectionnés.
Comment utiliser l’Analyseur de Performances Windows avec les applications WinUI ?
WinUI est une API déclarative, en mode retained, dans laquelle l’application décrit une arborescence d’éléments UIE et WinUI exécute la mise en page et le rendu. L’analyse des performances de Windows s’effectue sur le thread de l’interface utilisateur, par lots appelés « trames », qui doivent s’achever rapidement, idéalement dans un intervalle de rafraîchissement de l’affichage. Lorsque les trames sont trop longues, non seulement les mises à jour sont retardées par rapport à l’affichage, mais le fil d’exécution de l’interface utilisateur ne peut pas traiter les entrées. Les trames lentes, bien qu’elles ne soient pas la seule raison des problèmes de réactivité, sont l’une des plus courantes.
Installez le plugin « XAML Frame Analysis ».
WinUI journalise les événements ETW qui tracent le début et la fin de chaque trame (comme le montre la capture d’écran suivante du tableau « Événements génériques » de WPA). Toutefois, étant donné que la durée de chaque image doit être calculée manuellement, il est difficile d’identifier les occurrences lentes d’images.
Pour résoudre ce problème, un nouveau plugin de tableau « XAML Frame Analysis » est inclus dans la préversion de Windows Assessment Toolkit (ADK), à partir de la build 26020. Ce tableau calcule et affiche la durée de chaque trame (ainsi que d’autres opérations fastidieuses).
Remarque
Bien que seule la version préversion de l’analyseur de performances Windows (WPA) dispose du tableau « XAML Frame Analysis », la version de WPR utilisée pour prendre la trace n’a pas d’importance.
Une fois la préversion de l’ADK installée, le tableau « XAML Frame Analysis » doit être activé en modifiant le fichier de configuration « perfcore.ini » dans le dossier WPA (généralement, C:\NProgram Files (x86)\NWindows Kits\NWindows Performance Toolkit). Pour ce faire, fermez toutes les instances ouvertes de WPA, ouvrez perfcore.ini dans un éditeur de texte, ajoutez perf_xaml.dll
à la liste des dll, puis enregistrez et fermez le fichier. Redémarrez WPA, qui devrait maintenant afficher le graphique « XAML Frame Analysis » au bas de la section Activité du système.
Utiliser le plugin « XAML Frame Analysis »
Le module « XAML Frame Analysis » prend en charge deux vues (les deux vues affichent les mêmes colonnes) :
- « Trames XAML intéressantes » (par défaut) – Affiche les trames WinUI en fonction d’une heuristique qui identifie celles qui sont les plus susceptibles de causer des problèmes de réactivité. Ces trames correspondent aux régions qui commencent par des opérations telles que l’initialisation de la WinUI, la navigation dans les trames ou l’affichage d’un flyout, et qui s’arrêtent à la fin de la trame suivante. Ces scénarios impliquent généralement des modifications importantes de l’arborescence des éléments UIE et sont les plus susceptibles d’entraîner des problèmes de performances.
- « Toutes les informations sur XAML » – Affiche toutes les trames WinUI de tous les processus trouvés dans la trace. Pour les opérations de type trame ou passage de mise en page, le plugin calcule et affiche automatiquement les durées en fonction des événements Start et Stop.
La capture d’écran suivante montre comment passer d’une vue à l’autre de l’analyse des trames Xaml.
Les deux vues de l’analyse des trames Xaml comprennent les colonnes suivantes :
Titre | Valeur |
---|---|
Processus | Nom et ID du processus |
ID du thread | ID du thread |
Catégorie | Décrit l’événement correspondant à la ligne. Valeurs possibles :
|
Intéressant | Si la ligne est considérée comme intéressante. Seules les lignes intéressantes apparaissent dans la vue Trames Xaml intéressantes. |
Durée (ms) | Durée de la ligne. Calculée à partir des événements Start et Stop. |
Poids (ms) | Le temps d’exécution réel du processeur correspondant à la durée. |
Start(s) | L’heure de l’événement Start |
Stop(s) | L’heure de l’événement Stop |
Les colonnes peuvent être triées par Type ou Durée pour aider à identifier les problèmes potentiels tels que les trames les plus coûteuses et les plus longues dans la trace (voir l’image suivante). Vous pouvez également explorer des lignes spécifiques pour identifier les opérations coûteuses et les optimisations potentielles.
Windows developer