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.
Cette rubrique explique comment utiliser des outils d’analyse des performances à partir du Windows Performance Toolkit pour produire des profils de performances détaillés 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.
Note
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 le Windows Performance Analyzer 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. Cela se fait sur le thread de l'interface utilisateur par lots appelés « trames », qui doivent se terminer rapidement, de préférence dans un intervalle de rafraîchissement de l'écran. Lorsque les trames sont trop longues, non seulement les mises à jour prennent du retard pour atteindre l'affichage, mais le fil d’exécution de l’interface utilisateur est également empêché de traiter les entrées. Les trames lentes, même si elles ne sont pas la seule cause des problèmes de réactivité, sont un des problèmes les plus courants.
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 plug-in de table « Analyse de frame XAML » est inclus dans la boîte à outils d’évaluation Windows Assessment Toolkit (ADK) 10.1.26100.1 et versions ultérieures. Ce tableau calcule et affiche la durée de chaque trame (ainsi que d’autres opérations fastidieuses).
Note
La table « Analyse de frame XAML » nécessite Windows Performance Analyzer (WPA) à partir de Windows ADK 10.1.26100.1 ou version ultérieure. La version de WPR utilisée pour effectuer la trace n’a pas d’importance.
Une fois l’ADK installé, la table « Analyse de frame XAML » doit être activée en modifiant le fichier de configuration «perfcore.ini» dans le dossier WPA (généralement, C :\Program Files (x86)\Windows Kits\10\Windows 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 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 cadres 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 |
| Type | 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 rangée. Calculée à partir des événements Start et Stop. |
| Poids (ms) | Le temps d’exécution réel du processeur correspondant à la durée. |
| Démarrer(s) | L’heure de l’événement Start |
| Arrêt(s) | L’heure de l’événement d'arrêt |
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