Outils de profilage des performances pour WPF

Mise à jour : novembre 2007

WPF fournit une suite d'outils de profilage des performances qui vous permettent d'analyser le comportement au moment de l'exécution de votre application et de déterminer les types d'optimisations des performances que vous pouvez appliquer. Le tableau ci-dessous répertorie les cinq outils de profilage des performances inclus dans l'outil WPFPerf du Kit de développement logiciel (SDK) Windows :

Outil

Description

Perforator

À utiliser pour analyser le comportement de rendu.

Visual Profiler

À utiliser pour profiler l'utilisation de services WPF, tels que la disposition et la gestion des événements par des éléments dans l'arborescence visuelle.

Working Set Analyzer

À utiliser pour analyser les caractéristiques du jeu de travail de votre application.

Event Trace

À utiliser pour analyser des événements et générer des fichiers journaux d'événements.

ETW Trace Viewer

À utiliser pour enregistrer, afficher et parcourir les fichiers journaux Event Tracing for Windows (ETW) dans un format d'interface utilisateur WPF.

Cette rubrique comprend les sections suivantes.

  • Utilisation des outils de profilage des performances
  • Perforator
  • Visual Profiler
  • Working Set Analyzer
  • Event Trace
  • ETW Trace Viewer
  • Autres ressources des outils d'analyse des performances
  • Rubriques connexes

Utilisation des outils de profilage des performances

Une fois que vous avez installé le Kit de développement logiciel (SDK) Windows, vous avez la possibilité d'installer la suite de gestion des performances WPF.

Remarque :

Avant d'installer la suite de gestion des performances, supprimez les versions antérieures de WPFPerf.exe.

La première fois que vous exécutez WPFPerf, la boîte de dialogue Add Tool apparaît :

Boîte de dialogue Add Tool

Boîte de dialogue Ajouter un outil

Sélectionnez le ou les outils que vous souhaitez utiliser et cliquez sur OK.

Remarque :

Afin d'utiliser les outils de profilage des performances, votre compte d'utilisateur doit être exécuté avec un accès d'administration.

Perforator

Perforator est un outil de profilage des performances permettant d'analyser le comportement de rendu. La fenêtre principale de Perforator affiche un ensemble d'options qui vous permettent d'analyser un comportement de rendu très spécifique dans les différentes parties de votre application.

Perforator, fenêtre principale

Fenêtre principale Perforateur

Perforator vous permet de spécifier plusieurs options qui affectent le comportement de rendu en temps réel de l'application:

Option

Description

Draw software rendering with purple tint

Trace toutes les zones rendues à l'aide du pipeline de rendu logiciel dans une teinte violette. Cela inclut les cibles de rendu logiciel, le contenu 3D logiciel et le recours logiciel par primitive.

Clear back-buffer before updating

Efface les fenêtres d'application avant chaque opération de dessin.

Show dirty region update overlay

Permet d'indiquer chaque mise à jour effectuée par WPF à l'écran en la recoloriant. Cela vous permet de voir où et quand des zones sont redessinées dans une application.

Disable dirty region support

Indique à WPF de redessiner la fenêtre entière chaque fois qu'une modification est effectuée. Normalement, seule la partie de la fenêtre qui a changé est redessinée. La sélection de cette option ralentit considérablement le rendu de votre application.

Disable Opacity effects

Désactive certaines utilisations de l'opacité pouvant être exigeantes en performances.

Disable per-primitive software fallback

Désactive le recours à la mémoire logicielle pour les primitives de rendu individuelles. Il est impossible de désactiver les cibles de rendu logicielles intermédiaires et tout autre rendu logiciel.

Disable high-quality image rescaling

Désactive la remise à l'échelle d'images de grande taille en images de plus petite taille.

Disable 3D rendering

Désactive toutes les opérations de rendu 3D.

Option Enable Debug Control

La case à cocher Enable Debug Control vous permet d'activer et de désactiver l'accès à la mémoire partagée WPF. Par défaut, Perforator active cette option au démarrage et la désactive lors de son arrêt. Dans le cas d'un arrêt anormal de Perforator, redémarrez l'outil et désactivez manuellement la case à cocher Enable Debug Control pour désactiver l'accès à la mémoire partagée WPF. Ensuite, redémarrez Perforator et l'application WPF dont vous réalisiez le profilage.

Remarque :

La sélection de cette option peut entraîner une légère augmentation de l'utilisation de la mémoire et une légère baisse des performances lors de l'exécution d'applications WPF. Vous devez vous assurer que Perforator désactive cette option correctement.

Paramètre de clé de Registre

La case à cocher Enable Debug Control ajoute ou supprime un paramètre de clé de Registre WPF. Pour ajouter le paramètre de clé de Registre manuellement, exécutez la commande ci-dessous dans une fenêtre Commande :

reg add HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /t REG_DWORD /d 1 /f

Pour supprimer le paramètre de clé de Registre manuellement, exécutez la commande ci-dessous dans une fenêtre Commande :

reg delete HKLM\SOFTWARE\Microsoft\Avalon.Graphics /v EnableDebugControl /f

Utilisation de Perforator

Pour utiliser Perforator, démarrez l'application WPF dont vous souhaitez analyser le comportement de rendu. Une fois l'application démarrée, cliquez sur le bouton Refresh dans Perforator. L'application doit désormais figurer dans la zone de liste des applications WPF dans Perforator. Sélectionnez l'application et les options de rendu que vous souhaitez analyser. Les valeurs des données Perforator, telles que la fréquence d'images, reflètent immédiatement le comportement de rendu de l'application.

Perforator une fois l'application et les options de rendu sélectionnées

Fenêtre principale Perforateur avec options sélectionnées

La capture d'écran ci-dessous illustre l'exemple d'application PhotoDemo une fois les options de rendu "Draw software rendering with purple tint" et "Show dirty region support" sélectionnées:

Comportement de rendu affiché par l'exemple d'application PhotoDemo

App de démo photo montrant les options de rendu perforateur

Les sections suivantes présentent les principaux problèmes de performances impliqués dans le rendu et la manière dont les options et la sortie des données Perforator peuvent vous aider à diagnostiquer ces problèmes.

Comment éviter le rendu logiciel

Comme le pipeline de rendu matériel WPF est nettement plus rapide que son pipeline de rendu logiciel, moins il y aura d'interface utilisateur (interface utilisateur) de l'application restituée dans le logiciel, plus le rendu sera rapide dans cette application. Généralement, le temps nécessaire au rendu d'une zone dans un logiciel est proportionnel au nombre de pixels restitués. Ainsi, méfiez-vous des zones de grande taille restituées à l'aide du pipeline logiciel ; les zones de petite taille posent moins de problèmes.

Voici les options de Perforator qui peuvent vous aider à détecter les problèmes de rendu logiciel :

  • Draw software rendering with purple tint : trace toutes les zones restituées à l'aide du pipeline de rendu logiciel dans une teinte violette. Cela inclut les cibles de rendu logiciel, le contenu 3D logiciel et le recours logiciel par primitive.

  • Num Software Render Targets : compte les cibles de rendu de la fenêtre complète qui s'exécutent entièrement dans la mémoire logicielle. Si ce nombre n'est pas 0, cela représente un sérieux problème de performances généralement lié à la configuration de l'ordinateur ou à la présence de fenêtres superposées. Assurez-vous que Microsoft Direct3D est activé (exécutez dxdiag), assurez-vous que tous les écrans ont une profondeur de couleur de 32 BPP (bits par pixel) et assurez-vous que la carte graphique est prise en charge par Microsoft DirectX 9.0.

  • Num Hardware Render Targets : compte les cibles de rendu de la fenêtre complète qui s'exécutent entièrement dans la mémoire matérielle. Ce nombre doit être égal au nombre de fenêtres de l'application, multiplié par le nombre de cartes vidéo. Cela indique qu'une application subit une accélération matérielle chaque fois que cela est possible.

Comment éviter un nombre important de cibles de rendu intermédiaires

Les cibles de rendu intermédiaires sont des images supplémentaires que WPF doit dessiner afin de préparer un contenu pour le dessiner à l'écran.

  • Maximum SW/HW IRTs per Frame : indique le nombre maximal de cibles de rendu intermédiaires logicielles ou matérielles qui sont appliquées pour restituer une image quelconque de l'application. Les cibles de rendu intermédiaires sont généralement dues à l'utilisation de DrawingBrush, VisualBrush, Opacity sur un Visual, ou des modes de mosaïque sur un TileBrush. Si ce nombre est très élevé, cela peut indiquer que le runtime WPF effectue une grande quantité de travail pour restituer votre application.

Mesures de performances utiles

  • Dirty Rect Addition rate : indique que des mises à jour rapides sont déclenchées dans votre application.

  • Frame rate : signale la fréquence à laquelle l'application est rendue à l'écran. Pour des applications sans animation, cette valeur doit être proche de 0, étant donné que les optimisations des régions modifiées doivent éviter le dessin sauf lorsque cela est nécessaire. Traitez ce nombre comme une estimation.

  • Estimated video memory usage : suit les allocations de grande taille de mémoire vidéo effectuées directement par WPF (textures et cibles de rendu). Cela ne permet pas de suivre les allocations effectuées par un pilote vidéo donné au cours du rendu, les allocations causées par la compilation et le chargement de nuanceurs de pixels ou de vertex shaders, ni les allocations pour les tampons de vertex ou d'index. Notez qu'un dépassement de la quantité disponible de mémoire de texture aura généralement comme conséquence le recours de la logique de rendu WPF à la mémoire logicielle et le fait que plusieurs affichages (plusieurs écrans) auront un effet multiplicateur sur la quantité de mémoire vidéo requise pour une application.

Prise en charge des régions modifiées

Comme Windows Presentation Foundation (WPF) met à jour seulement les parties de la fenêtre selon les besoins, il peut être utile de visualiser quelle proportion de la fenêtre est mise à jour à tout moment. Les options ci-dessous aident à visualiser les comportements de mise à jour.

  • Show dirty-region update overlay : permet d'indiquer par recoloriage chaque mise à jour que WPF effectue à l'écran. Cela vous permet de voir quelles zones sont redessinées dans une application en cours d'exécution et quand.

  • Clear Back Buffer Before Rendering : permet d'effacer la fenêtre avant chaque opération de dessin.

  • Disable Dirty Region Support : configure WPF pour redessiner la fenêtre entière chaque fois qu'une modification se produit, au lieu de redessiner seulement la partie de la fenêtre qui a changé. Cela peut être utile pour forcer la mise à jour de la fenêtre entière, mais prenez garde : cette option ralentit considérablement le rendu de votre application.

Désactivation des fonctionnalités de rendu

Perforator vous permet de désactiver certaines opérations exigeantes en performances pour déterminer si elles provoquent des goulots d'étranglement dans votre application.

  • Disable Opacity Effects : désactive certaines utilisations de l'opacité pouvant être exigeantes en performances. Pour éviter globalement ce problème de performances, pensez à définir l'opacité sur un objet de bas niveau, tel que Brush, et non pas sur un objet de haut niveau, tel que Button.

  • Disable per-primitive software fallback : désactive le recours à la mémoire logicielle pour les primitives de rendu individuelles. Il est impossible de désactiver les cibles de rendu logicielles intermédiaires et tout autre rendu logiciel.

  • Disable high-quality image rescaling : WPF remet à l'échelle les images de grande taille pour améliorer leur présentation si elles sont affichées à une taille réduite. Cette opération est exigeante en performances, particulièrement dans les applications qui affichent de nombreuses images de grande taille à des tailles réduites à l'écran. Cette option vous permet de désactiver cette mise à l'échelle pour voir si elle est à l'origine d'un problème de performances. Pour éviter cela, pensez à décoder vos images à une taille proche de la taille à laquelle elles seront affichées.

  • Disable 3D rendering  : désactive toutes les opérations de dessin 3D.

Visual Profiler

Visual Profiler est un outil d'analyse des performances utilisé pour profiler l'utilisation des services WPF, tels que la disposition et la gestion des événements, à l'aide des éléments présents dans l'arborescence visuelle. En analysant la sortie de profilage de cet outil, vous pouvez déterminer quels éléments visuels dans votre application peuvent provoquer des goulots d'étranglement de performances. La fenêtre principale de Visual Profiler affiche un ensemble d'options qui vous permettent de spécifier la manière dont vous voulez profiler votre application.

  • Update interval (Intervalle de mise à jour). Granularité horaire à utiliser au cours du profilage.

  • Display overlay (Superposition de l'affichage). L'option de superposition de l'affichage vous permet d'afficher l'utilisation des ressources processeur ; une superposition en rouge foncé indique des ressources processeur plus importantes.

Valeur du profilage visuel

WPF Visual Profiler présente les problèmes de performances dans le contexte des blocs de construction de base utilisés pour construire des scènes visuelles dans votre application. Ces blocs de construction incluent des objets de haut niveau, tels que les contrôles Button et TextBlock, ainsi que des objets de bas niveau, tels que les éléments Line et Ellipse. Au lieu de décrire les problèmes de performances en termes de graphiques des appels des noms de fonctions, Visual Profiler décrit ces problèmes en utilisant la représentation d'objets visuels. Cela est similaire à la manière dont l'outil Kit de développement logiciel (SDK) Windows, UI Spy, représente les informations. Pour plus d'informations, consultez UI Spy (UISpy.exe).

Afin d'analyser la palette complète des problèmes de performances WPF, il est nécessaire de comprendre le rôle et l'étendue des services WPF sous-jacents. Ces services incluent la présentation, le rendu et l'animation. Visual Profiler fournit une représentation graphique de la manière dont les services WPF sont alloués entre les objets application. Par exemple, lorsque Visual Profiler affiche l'arborescence visuelle d'objets application, il superpose différentes nuances de rouge sur les objets afin de représenter la quantité relative de ressources que l'objet utilise. Un objet affiché avec une superposition en rouge foncé correspond à un objet qui utilise une plus grande proportion de ressources qu'un objet avec une superposition en rouge plus clair. Plus important encore, Visual Profiler fournit le détail de la quantité de ressources WPF spécifiques qu'un objet consomme.

Utilisation de Visual Profiler

Pour utiliser Visual Profiler, cliquez sur le bouton Start Profiling et sélectionnez Launch ou Attach. Pour pouvoir utiliser l'option Attach, WPFPerf et l'application que vous profilez doivent être exécutés avec un accès d'administration. En outre, la fonctionnalité de superposition est désactivée et un nombre moins important d'événements sont disponibles pour l'option Attach. L'option Launch correspond à l'option recommandée.

L'onglet Events vous permet de choisir l'application et les événements d'élément que vous souhaitez profiler.

Vous pouvez configurer Visual Profiler de manière à activer ou désactiver le profilage des événements ci-dessous de l'application. Les événements qui sont des méthodes sont représentés par le nom de la méthode suivi du nom de la classe entre parenthèses. Par exemple, Tick (TimeManager) représente la méthode TimeManager.Tick.

Événements de l'application

Description

RenderMessageHandler (MediaContext)

Initie la passe de rendu. Appelle les méthodes TimeManager.Tick et MediaContext.Render parmi d'autres méthodes.

Thread de rendu

Se produit lors de l'exécution d'instructions de rendu sur le thread de rendu. Cet événement est utile pour détecter les applications liées au rendu.

Disposition

Se produit au cours de la passe de mesure, de réorganisation ou de rendu.

UpdateRealizations

Se produit lors de la mise à jour de représentations de bitmap internes de texte et d'effets bitmap.

Tick (TimeManager)

Se produit lorsque l'animation est graduée. Cet événement peut déclencher le gestionnaire de rendu d'animation.

UpdateEffectiveValue (DependencyObject)

Se produit lorsque le moteur de propriété modifie la valeur d'un DependencyProperty.

Test d'atteinte

Se produit au cours de la passe de test d'atteinte qui détermine quel objet visuel a été atteint.

AnimatedRenderMessageHandler (MediaContext)

Lorsque des animations sont activées, ce gestionnaire traite et met à jour l'animation, ce qui provoque la modification des propriétés et, à son tour, le rendu.

Render (MediaContext)

Se produit au cours de la passe de rendu. Cette méthode appelle éventuellement la méthode OnRender de chaque élément et est utile pour comprendre le coût total de OnRender pour tous les éléments. Cet événement correspond à la méthode MediaContext.Render dans un fichier du profileur Visual Studio.

FormatLineInternal (TextFormatterImp)

Se produit lors de la mise en forme de texte.

MarkVisibleRealizations (Visual)

Se produit lors de la détection de représentations de bitmap internes de texte et lorsque des effets bitmap doivent être mis à jour.

Vous pouvez configurer Visual Profiler de manière à activer ou désactiver le profilage des événements d'élément ci-dessous :

Événements d'élément

Description

Disposition

Se produit au cours de la passe de mesure, de réorganisation ou de rendu.

MarkVisibleRealizations (Visual)

Se produit lors de la détection de représentations de bitmap internes de texte et lorsque des effets bitmap doivent être mis à jour.

UIElement.OnRender

Opérations de rendu UIElement.

Disposition UIElement

Opérations de disposition UIElement.

Une fois que vous avez fini de sélectionner l'application et les options de profilage, cliquez sur le bouton OK pour démarrer le profilage de l'application.

Exécutez votre application et l'outil Visual Profiler côte à côte et notez les valeurs qui changent dans l'outil. En développant la hiérarchie d'arborescence visuelle, vous pouvez sélectionner un objet visuel spécifique à profiler, comme par exemple un contrôle Grid. La section CPU Usage de Visual Profiler vous donne un descriptif précis de l'utilisation des services WPF à la fois par l'outil et l'application. Les données CPU Utilization de l'élément répertorient :

  • le temps inclusif : l'utilisation de l'UC pour l'élément et tous ses descendants ;

  • le temps exclusif : l'utilisation de l'UC pour l'élément uniquement.

Sortie d'affichage de Visual Profiler

Sortie du Générateur de profils Visual

Visual Profiler superpose différentes nuances de rouge sur les objets dans l'arborescence visuelle afin de représenter la quantité relative de ressources que l'objet utilise. Un objet affiché avec une superposition en rouge foncé correspond à un objet qui utilise une plus grande proportion de ressources qu'un objet avec une superposition en rouge plus clair.

Working Set Analyzer

Working Set Analyzer est un outil d'analyse des performances WPF qui fournit des informations sur l'utilisation de la mémoire d'un processus spécifié. Cet outil vous permet de générer une capture instantanée des informations d'utilisation de la mémoire de l'application à un état particulier de l'application.

Jeu de travail d'une application

Le jeu de travail d'une application est la collection des pages incluses dans son espace d'adressage virtuel et qui ont été référencées récemment. Il contient à la fois des données partagées et des données privées. Les données partagées incluent les pages qui contiennent toutes les instructions que votre application exécute, notamment celles présentes dans vos DLL et dans les DLL système. Plus la taille du jeu de travail augmente, plus la demande en mémoire est élevée. Pour plus d'informations sur le jeu de travail, consultez Jeu de travail de processus.

Utilitaire Virtual Address Dump (VaDump)

Virtual Address Dump (VaDump) crée une liste qui contient des informations sur l'utilisation de la mémoire d'un processus spécifié. Cet outil se trouve dans le répertoire suivant :

~\Program Files\Microsoft Visual Studio 8\Common7\Tools\Bin\winnt

Remarque importante :

Vous devez vous assurer que le chemin d'exécution système inclut l'emplacement de répertoire de VaDump. Dans le cas contraire, Working Set Analyzer ne fonctionnera pas correctement.

Utilisation de Working Set Analyzer

Pour utiliser Working Set Analyzer, démarrez l'application WPF que vous voulez profiler. Une fois que vous avez démarré Working Set Analyzer, sélectionnez l'option Select Process :

Working Set Analyzer – Boîte de dialogue Select Process

Fenêtre principale d'affichage du jeu de travail

Sélectionnez le processus dont vous voulez analyser le jeu de travail, puis cliquez sur le bouton Capture. Working Set Analyzer appelle tout d'abord VaDump pour générer les informations d'utilisation de la mémoire. Ensuite, il analyse les informations et les présente dans un format riche graphiquement.

Remarque :

Les données de jeu de travail représentent une vue statique de l'utilisation de la mémoire. Vous pouvez générer plusieurs ensembles de données de jeu de travail à des points différents dans votre application et comparer les différences d'utilisation de la mémoire.

Lorsque les données de jeu de travail sont prêtes à être consultées, Working Set Analyzer génère une arborescence qui représente les données dynamiques, les données système et les modules d'application.

Working Set Analyzer – Catégories d'utilisation de la mémoire

Catégories d'utilisation de l'afficheur du jeu de travail

Pour les applications WPF, la catégorie Modules WPF contient les modules propres au système WPF. Cliquez sur la catégorie que vous souhaitez afficher et un ensemble de graphiques à secteurs apparaît. Par exemple, cliquer sur la catégorie Modules WPF affiche les informations ci-dessous sur le côté gauche de la fenêtre.

Working Set Analyzer – Graphique à secteurs d'utilisation de la mémoire des modules WPF

Graphique à secteurs de l'utilisation de la mémoire de l'afficheur du jeu de travail

La légende dans la partie supérieure indique la taille totale de la catégorie de jeu de travail. Dans ce cas, Modules WPF représente une utilisation de mémoire de 9 160 Ko. Ce graphique à secteurs représente l'utilisation de mémoire individuelle de tous les modules qui définissent la catégorie Modules WPF.

Remarque :

La taille d'une catégorie d'utilisation de la mémoire reflète l'utilisation de la mémoire de votre application au moment où les informations de jeu de travail ont été capturées.

Le tableau de petite taille représente l'utilisation de la mémoire des octets partagés, partageables et privés.

Working Set Analyzer – Tableau d'utilisation de la mémoire

Graphique à secteurs de l'utilisation de la mémoire de l'afficheur du jeu de travail

La catégorie des octets partagés représente la quantité de mémoire susceptible d'être partagée par d'autres applications WPF.

Affichage de l'utilisation de la mémoire de votre application

Pour visualiser l'utilisation de la mémoire pour votre application, sélectionnez le nom du fichier exécutable dans la catégorie Other Modules (Autres modules) de l'arborescence Working Set (Jeu de travail).

Working Set Analyzer – Catégories d'utilisation de la mémoire

Catégories d'utilisation de l'afficheur du jeu de travail

Enregistrement et rechargement des fichiers Working Set Analyzer

Pour enregistrer les informations d'utilisation actuelles du jeu de travail, cliquez sur File dans le menu principal de Working Set Analyzer. Ensuite, cliquez sur le bouton Save VADump output. Une fois que vous avez enregistré les informations d'utilisation du jeu de travail, vous pouvez générer une autre capture instantanée de l'utilisation de la mémoire en cliquant sur le bouton Capture. Pour recharger un fichier contenant un contenu VADump, cliquez sur File dans le menu principal de Working Set Analyzer. Ensuite, cliquez sur le bouton Open VADump output.

Utilisation d'un délai pour capturer les informations du jeu de travail

Working Set Analyzer fournit une fonctionnalité de délai qui vous permet de capturer les informations d'utilisation d'un jeu de travail après un intervalle de temps spécifié. Sélectionnez Actions dans le menu principal de Working Set Analyzer. Ensuite, cliquez sur le bouton Launch Process….

Spécifiez l'application que vous souhaitez exécuter, en utilisant le bouton Browse si nécessaire. Ensuite, entrez les arguments pour l'application. Enfin, entrez le nombre de secondes dont vous souhaitez retarder la capture des informations d'utilisation de la mémoire. Ensuite, cliquez sur le bouton Launch. Le texte d'état au bas de la fenêtre Working Set Analyzer décompte le nombre de secondes restantes avant la capture, ce qui vous offre du temps pour modifier l'état de votre application. Une fois la capture terminée, le texte d'état indique "Done".

Event Trace

Event Tracing for Windows (ETW) est une fonctionnalité de traçage de niveau noyau efficace qui vous permet d'enregistrer les événements définis par le noyau ou par l'application dans un fichier journal. Vous pouvez consommer les événements en temps réel ou à partir d'un fichier journal et les utiliser pour déboguer une application ou pour déterminer à quel endroit des problèmes de performances se produisent dans l'application. L'outil de profilage WPF Event Trace utilise ETW pour l'enregistrement dans un journal des événements. Pour plus d'informations sur ETW, consultez Traçage d'événements.

Event Trace fait partie de la suite d'outils de profilage des performances WPF, WPFPerf (WpfPerf.exe). Pour plus d'informations, consultez la section Utilisation des outils de profilage des performances.

Utilisation d'Event Trace

La fenêtre principale de l'outil Event Trace contient un ensemble d'options qui vous permettent d'ajouter, d'enregistrer et d'afficher les informations d'enregistrement des événements :

Fenêtre principale de l'outil Event Trace

Fenêtre principale de suivi des événements

Ajout d'un nouveau journal d'événements

Pour ajouter un nouveau journal d'événements, cliquez sur le bouton Add dans la fenêtre principale de l'outil Event Trace. La boîte de dialogue Add New Logger affiche un ensemble d'informations qu'il vous faut définir. Logger Name fait référence au nom convivial du journal. Sélectionnez l'un des quatre types de journaux d'événements dans la zone de liste déroulante intitulée GUID :

  • NT Kernel Logger (Suivi du noyau Windows NT)

  • Common Language Runtime Garbage Collection (Garbage collection du Common Language Runtime)

  • Windows Presentation Foundation - Performance Only (Performances uniquement)

  • Windows Presentation Foundation -All (Tout)

Il existe deux types de journaux d'événements WPF. La version "Performance Only" est un sous-ensemble réduit de la version "All". Log File vous permet de définir le nom du fichier du journal d'événements. Cliquez sur le bouton "…" pour définir le nom de fichier. Les fichiers journaux d'événements utilisent l'extension de fichier par défaut, "etl".

L'option Level fait référence aux niveaux de gravité utilisables. Une valeur élevée implique que vous bénéficiez également des niveaux inférieurs. Par exemple, si vous spécifiez 3, vous recevez également tous les événements d'avertissement, d'erreur et d'erreur irrécupérable :

Niveau

Description

1

Événements relatifs à une sortie ou à un arrêt anormal.

2

Événements relatifs à une erreur grave.

3

Événements d'avertissement tels que des échecs d'allocation.

4

Événements non relatifs à une erreur tels que des événements d'entrée ou de sortie.

5

Événements de traçage détaillés.

L'option Flags spécifie la classe des événements WPF. Dans la plupart des cas, la valeur par défaut est suffisante.

Une fois que vous avez fini de créer les nouvelles informations d'enregistrement des événements, cliquez sur le bouton Add de la boîte de dialogue Add New Logger pour ajouter le journal dans Event Trace. Vous pouvez créer des journaux d'événements supplémentaires et les ajouter dans Event Trace. Une fois que vous avez fini d'ajouter tous les journaux d'événements, cliquez sur le bouton Done.

Boîte de dialogue Add New Logger

Boîte de dialogue Ajouter un nouvel enregistreur d'événements

Pour supprimer un journal d'événements spécifique, sélectionnez le journal d'événements dans la zone de liste et cliquez sur le bouton Remove. Pour supprimer tous les journaux d'événements, cliquez sur le bouton Clear.

Activation de l'enregistrement des événements

Sélectionnez le journal d'événements dans la liste des journaux d'événements dans la fenêtre principale de l'outil Event Trace. Cliquez sur le bouton Start pour activer l'enregistrement dans le journal. L'état du journal d'événements doit indiquer Enabled (Activé).

Fenêtre principale de l'outil Event Trace avec un journal d'événements sélectionné

Fenêtre principale de suivi des événements avec enregistreurs d'événements

Une fois que vous avez fini d'enregistrer dans le journal les événements relatifs à votre application, cliquez sur le bouton Stop. Pour vous assurer d'avoir capturé les informations d'enregistrement des événements, vous pouvez consulter le fichier journal d'événements. Cliquez sur le bouton Open Log pour afficher le fichier journal d'événements.

Fenêtre principale de l'outil Event Trace avec les informations du journal d'événements

Fenêtre principale de suivi des événements avec infos d'enregistrement des événements

Le fichier journal d'événements répertorie cinq colonnes d'informations pour chaque événement.

Colonne

Description

Time

Heure actuelle en cycles du processeur

Guid

GUID correspondant à l'événement

Name

Nom de l'événement

Event type

Événement d'information, de début ou de fin. Un événement de début possède un événement de fin correspondant.

Data

Données liées à un type d'événement spécifique

Les informations du journal d'événements ne sont pas très utiles dans ce format. Utilisez l'outil de profilage ETW Trace ViewerWPF pour analyser la sortie d'un fichier journal d'événements créé au moyen d'Event Trace.

ETW Trace Viewer

Event Tracing for Windows (ETW) fournit un mécanisme permettant de suivre et d'enregistrer dans un journal les événements qui sont déclenchés par des applications en mode utilisateur. ETW est implémenté dans le système d'exploitation Windows et fournit aux développeurs un ensemble de fonctionnalités de traçage d'événements rapides, fiables et polyvalentes. L'outil Event Trace vous permet d'enregistrer, d'afficher et de parcourir les fichiers journaux ETW dans un format d'interface utilisateur spécifique aux fonctionnalités WPF.

Fenêtre principale de l'outil ETW Trace View

Fenêtre principale d'affichage de la trace

Utilisation d'ETW Trace Viewer

Vous pouvez consulter un fichier journal ETW que vous avez créé et enregistré à l'aide de l'outil de profilage Event TraceWPF. Les fichiers journaux d'événements utilisent l'extension de fichier par défaut, "etl". Sélectionnez File dans le menu principal d'ETW Trace Viewer. Ensuite, cliquez sur Open pour charger le fichier journal de votre choix.

Fenêtre principale d'ETW Trace Viewer avec un fichier journal

Fenêtre principale d'affichage de la trace avec journal des événements

Une fois le fichier journal chargé, ETW Trace Viewer affiche une chronologie qui représente la durée de la capture du journal d'événements. Vous pouvez modifier l'unité de mesure pour exprimer la chronologie en secondes ou en millisecondes. Vous pouvez choisir les types d'événements à afficher en activant ou désactivant des types d'événements spécifiques. Si l'affichage d'un nombre réduit de types d'événements vous intéresse, vous pouvez cliquer sur le bouton Disable All pour désactiver tous les événements, puis activer les cases à cocher des événements que vous voulez activer. Les types d'événements activés pour la chronologie apparaissent en bas à droite d'ETW Trace Viewer.

Vous pouvez cliquer et faire glisser la souris sur la chronologie pour afficher uniquement les événements qui se sont produits au cours de la période sélectionnée de la chronologie. Pour effectuer un zoom avant sur la période sélectionnée de la chronologie, cliquez avec le bouton droit pour afficher le menu contextuel illustré dans la capture d'écran ci-dessous.

Fenêtre principale d'ETW Trace Viewer avec le menu contextuel

Fenêtre principale d'affichage de la trace avec journal des événements

Le menu contextuel vous permet d'effectuer un zoom avant et arrière sur la chronologie, ainsi que de montrer tous les événements et d'effacer la période de la chronologie actuellement sélectionnée. Lorsque vous effectuez un zoom avant sur la chronologie, l'intervalle de temps affiché en bleu indique la longueur de la chronologie sur laquelle un zoom avant a été effectué. L'intervalle de temps affiché ci-dessous, en noir, indique le temps correspondant à la durée globale de la capture du journal d'événements.

Fenêtre principale d'ETW Trace Viewer avec des données de zoom avant

Fenêtre principale d'affichage de la trace avec journal des événements

Vous pouvez cliquer sur les petites cases de la chronologie pour afficher des informations sur un événement spécifique.

Génération d'un fichier journal d'événements

Vous pouvez également créer un fichier journal ETW à l'aide d'ETW Trace Viewer en cliquant sur le bouton Start capture pour commencer l'enregistrement des événements et en cliquant sur le bouton Stop capture pour arrêter l'enregistrement des événements. Le journal d'événements généré à l'aide de cette méthode ne vous permet pas de personnaliser de paramètres pour filtrer les événements. Utilisez l'outil Event Trace pour créer un journal d'événements personnalisé.

Autres ressources des outils d'analyse des performances

Windows Presentation Foundation (WPF) fournit également une prise en charge du traçage du débogage.

Prise en charge du traçage du débogage pour WPF

La classe PresentationTraceSources fournit une prise en charge du traçage du débogage des applications Windows Presentation Foundation (WPF). Le traçage correspond à un système de diagnostic qui permet d'effectuer le suivi de la progression d'une application. Les instructions de traçage rapportent des informations d'une manière similaire à celle dont la méthode WriteLine est souvent utilisée. Toutefois, les instructions de traçage peuvent être activées ou désactivées à l'aide d'un fichier de configuration. En outre, la sortie des instructions de traçage peut être personnalisée.

Pour plus d'informations sur les autres classes de diagnostic .NET Framework associées, consultez System.Diagnostics.

Voir aussi

Concepts

Optimisation des performances des applications WPF

Couches de rendu graphiques

Vue d'ensemble du rendu graphique de Windows Presentation Foundation

UI Spy (UISpy.exe)