Analyser la consommation des ressources et l’activité des threads de l’interface utilisateur (XAML)Analyze Resource Consumption and UI Thread Activity (XAML)

Utilisez le profileur Chronologie de l'application pour rechercher et corriger les problèmes de performances liés à l'interaction d'application dans les applications XAML.Use the Application Timeline profiler to find and fix application-interaction related performance issues in XAML applications. Cet outil vous aide à améliorer les performances des applications XAML en fournissant une vue détaillée de la consommation des ressources des applications.This tool helps improve the performance of XAML applications by providing a detailed view of the applications' resource consumption. Vous pouvez analyser le temps passé par votre application à préparer les trames de l'interface utilisateur (mise en page et rendu), à traiter les demandes du réseau et des disques, et dans les scénarios comme le démarrage de l'application, le chargement des pages et le redimensionnement des fenêtres.You can analyze the time spent by your application preparing UI frames (layout and render), servicing network and disk requests, and in scenarios like Application Startup, Page Load and Windows resize.

La Chronologie de l’application fait partie des outils que vous pouvez démarrer avec la commande Déboguer -> Profileur de performances....Application Timeline is one of the tools you can start with the Debug / Performance Profiler... command.

Cet outil remplace l'outil Réactivité de l'interface utilisateur XAML , qui faisait partie de l'ensemble d'outils de diagnostic pour Visual Studio 2013.This tool replaces the XAML UI Responsiveness tool that was part of the diagnostic toolset for Visual Studio 2013.

Vous pouvez utiliser cet outil sur les plateformes suivantes :You can use this tool on the following platforms:

  1. Applications universelles Windows (sur Windows 10)Universal Windows apps (on Windows 10)

  2. Windows 8.1Windows 8.1

  3. Windows Presentation Foundation (.Net 4.0 et ultérieur)Windows Presentation Foundation (.Net 4.0 and above)

  4. Windows 7Windows 7

Note

Vous pouvez collecter et analyser les données d'utilisation de l'UC et les données de consommation d'énergie en même temps que les données de Chronologie de l'application .You can collect and analyze CPU usage data and energy consumption data along with the ApplicationTimeline data. Consultez Exécution des outils de profilage avec ou sans le débogueur.See Running Profiling Tools with or without the Debugger.

Collecter les données de chronologie de l’applicationCollect Application Timeline data

Vous pouvez profiler la réactivité de votre application sur votre ordinateur local, sur votre appareil connecté, sur le simulateur ou les émulateurs Visual Studio, ou sur un appareil distant.You can profile the responsiveness of your app on your local machine, connected device, Visual Studio simulator or emulators, or a remote device. Consultez Exécution des outils de profilage avec ou sans le débogueur.See Running Profiling Tools with or without the Debugger.

Conseil

Si possible, exécutez l'application directement sur l'appareil.If possible, run the app directly on the device. Les performances de l'application observées sur le simulateur ou via une connexion Bureau à distance peuvent ne pas être identiques aux performances réelles sur l'appareil.The application performance observed on the simulator or through a remote desktop connection might not be the same as the actual performance on the device. D'autre part, la collecte des données à l'aide des outils distants Visual Studio n'affecte pas les données de performances.On the other hand, collecting the data by using the Visual Studio Remote Tools does not affect the performance data.

Les étapes de base sont les suivantes :Here are the basic steps:

  1. Ouvrez votre application XAML.Open your XAML app.

  2. Cliquez sur Déboguer -> Profileur de performances.... Vous devez voir une liste des outils de profilage dans la fenêtre .diagsession.Click Debug / Performance Profiler.... You should see a list of profiling tools in the .diagsession window.

  3. Sélectionnez Chronologie de l'application , puis cliquez sur Démarrer dans le bas de la fenêtre.Select Application Timeline and then click Start at the bottom of the window.

    Note

    Il est possible qu'une fenêtre Contrôle de compte d'utilisateur apparaisse et vous demande l'autorisation d'exécuter VsEtwCollector.exe.You might see a User Account Control window requesting your permission to run VsEtwCollector.exe. Cliquez sur Oui.Click Yes.

  4. Exécutez le scénario qui vous intéresse quant au profilage dans votre application pour collecter des données de performances.Run the scenario you are interested in profiling in your app to collect performance data.

  5. Pour arrêter le profilage, revenez à la fenêtre .diagsession et cliquez sur Arrêter dans le haut de la fenêtre.To stop profiling, switch back to the .diagsession window and click Stop at the top of the window.

    Visual Studio analyse les données collectées et affiche les résultats.Visual Studio analyzes the collected data and displays the results.

    Rapport du profileur de chronologieTimeline profiler report

Analyser les données de profilage de la chronologieAnalyze Timeline profiling data

Après avoir collecté les données de profilage, vous pouvez utiliser ces étapes pour démarrer votre analyse :After you have collected the profiling data, you can use these steps to start your analysis:

  1. Consultez les informations dans les graphiques Utilisation de threads d'interface utilisateur et Débit visuel (i/s) puis utilisez les barres de navigation de la chronologie pour sélectionner une plage horaire à analyser.Examine the information in the UI thread utilization and Visual throughput (FPS) graphs and then use the timeline navigation bars to select a time range that you want to analyze.

  2. À l'aide des informations des graphiques Utilisation des threads de l'interface utilisateur ou Débit visuel (i/s) , examinez les détails de la vue Détails de la chronologie pour découvrir les causes possibles d'un manque apparent de réactivité.Using the information in the UI thread utilization or Visual throughput (FPS) graphs, examine the details in the Timeline details view to discover possible causes for any apparent lack of responsiveness.

Scénarios de rapport, catégories et événementsReport scenarios, categories, and events

L'outil Chronologie de l'application affiche les données de la chronologie pour les scénarios, les catégories et les événements liés aux performances XAML.The Application Timeline tool displays timing data for scenarios, categories, and events that are related to XAML performance.

Chronologie de session de diagnosticDiagnostic session timeline

Chronologie des performances et des diagnosticsPerformance and Diagnostics timeline

La règle située en haut de la page affiche la chronologie des informations profilées.The ruler at the top of the page shows the timeline for profiled information. Cette chronologie s'applique aux deux graphiques Utilisation de threads d'interface utilisateur et Débit visuel .This timeline applies to both the UI thread utilization graph and the Visual throughput graph. Vous pouvez limiter la portée du rapport en faisant glisser les barres de navigation sur la chronologie pour sélectionner un segment de la chronologie.You can narrow the scope of the report by dragging the navigation bars on the timeline to select a segment of the timeline.

La chronologie affiche également les marques utilisateur que vous avez insérées, et les événements de cycle de vie de l'activation de l'application.The timeline also displays any user marks that you have inserted, and the app's activation lifecycle events.

Graphique d’utilisation du thread d’interface utilisateurUI thread utilization graph

Graphique d’utilisation du processeurCPU Utilization Graph

Le graphique Utilisation des threads d'interface utilisateur (%) est un graphique à barres qui affiche la quantité relative de temps passé dans une catégorie pendant un intervalle de collecte.The UI thread utilization (%) graph is a bar chart that displays the relative amount of time spent in a category for during a collection span.

Graphique du débit visuel (images par seconde)Visual throughput (FPS) graph

Graphique du débit visuelVisual throughput graph

Le diagramme linéaire Débit visuel (i/s) montre les images par seconde (FPS) sur l'interface utilisateur et le thread de composition pour l'application.The Visual throughput (FPS) line graph shows the frames per second (FPS) on the UI and composition thread for the app.

Détails de la chronologieTimeline details

C'est dans la vue Détails que vous passerez le plus de temps à analyser le rapport.The details view is where you will be spending most of your time analyzing the report. Il montre une vue détaillée de l’utilisation de l’UC par votre application, en fonction de la catégorie du sous-système du framework d’interface utilisateur ou du composant système qui a consommé l'UC.It shows a detailed view of CPU utilization of your application categorized by the UI Framework subsystem or the system component that consumed the CPU.

Les événements suivants sont pris en charge :The following events are supported:

AnalyseParsing Temps passé à l'analyse de fichiers XAML et à la création d'objets.Time spent parsing XAML files and creating objects.

Le développement d'un nœud Analyse dans Détails de la chronologie affiche la chaîne de dépendance de tous les fichiers XAML qui ont été analysés comme résultat de l'événement racine.Expanding a Parsing node in Timeline details displays the dependency chain of all the XAML files that were parsed as a result of the root event. Cela vous permettra d'identifier l'analyse de fichiers inutiles et la création d'objets dans les scénarios critiques de performances, et de les optimiser.This will enable you to identify unnecessary file parsing and object creation in performance sensitive scenarios and optimize them out.
DispositionLayout Dans les grandes applications, des milliers d'éléments peuvent s'afficher en même temps sur l'écran.In large applications, thousands of elements may be shown on the screen at the same time. Ceci peut entraîner un faible débit des trames d'interface utilisateur et en conséquence, une réactivité faible de l'application.This might result in a low UI frame rate and correspondingly poor application responsiveness. L’événement Layout détermine avec précision le coût de la disposition de chaque élément (c’est-à-dire le temps passé dans les fonctions Arrange, Measure, ApplyTemplate et ArrangeOverride) et génère les arborescences des éléments visuels qui ont participé à une passe de disposition.The Layout event accurately determines the cost of laying out each element (i.e. the time spent in Arrange, Measure, ApplyTemplate, ArrangeOverride, and ArrangeOverride) and builds the visual trees that took part in a Layout pass. Vous pouvez utiliser cette visualisation pour déterminer laquelle de vos arborescences logiques doit être élaguée ou pour évaluer d'autres mécanismes de report pour optimiser votre passe de disposition.You can use this visualization to determine which of your logical trees needs pruning, or to evaluate other deferral mechanisms to optimize your layout pass.
AfficherRender Temps passé à dessiner les éléments XAML à l'écran.Time spent drawing XAML elements to the screen.
E/SI/0 Durée de récupération de données à partir du disque local ou à partir des ressources réseau qui sont accessibles par le biais de l’ API Microsoft Windows Internet (WinINet).Time spent retrieving data from the local disk or from network resources that are accessed through the Microsoft Windows Internet (WinINet) API.
Code d'applicationApp Code Indique le temps passé à l'exécution du code de l'application (utilisateur) qui n'est pas lié à l'analyse ou à la disposition.Time spent executing application (user) code that is not related to parsing or layout.
Autres XamlXaml Other Temps passé à exécuter le code du runtime XAML.Time spent executing XAML runtime code.

Conseil

Choisissez l'outil Utilisation de l'UC ainsi que l'outil Chronologie de l'application quand vous démarrez le profilage pour afficher les méthodes de l'application qui s'exécutent sur le thread d'interface utilisateur.Choose the CPU Usage tool along with the Application Timeline tool when you start profiling to view app methods that execute on the UI thread. Le déplacement d'un code d'application de longue durée vers un thread d'arrière-plan peut améliorer la réactivité de l'interface utilisateur.Moving long-running app code to a background thread can improve UI responsiveness.

Personnalisation des détails de la chronologieCustomizing Timeline details

Utilisez la barre à outils Détails de la chronologie pour trier, filtrer et spécifier les annotations des entrées de la vue Détails de la chronologie .Use the Timeline details toolbar to sort, filter, and specify the annotations of Timeline details view entries.

Trier parSort by Triez par heure de début ou sur la longueur des événements.Sort by start time or the length of events.
Regrouper les événements par frameGroup events by frame Ajoute ou supprime une catégorie Image qui regroupe les événements par image.Adds or removes a top-level Frame category that groups events by frame.
Filtrer la liste des détails de chronologieFilter Timeline details list Filtre la liste par catégories sélectionnées et longueur des événements.Filters the list by selected categories and the length of events.
Personnaliser les informations de détails de chronologieCustomize Timeline details information Permet de spécifier des annotations sur les événements.Lets you specify the annotations to events.

Voir aussiSee Also

Blog de l’équipe WPF : New UI Performance Analysis Tool for WPF ApplicationsWPF Team Blog: New UI Performance Analysis Tool for WPF Applications
Bonnes pratiques pour les performances des applications UWP en C++, C# et Visual Basic Performance best practices for UWP apps using C++, C#, and Visual Basic
Optimisation des performances des applications WPFOptimizing WPF Application Performance
Profilage dans Visual StudioProfiling in Visual Studio
Visite guidée des fonctionnalités de profilageProfiling Feature Tour