Identifier les chemins critiques avec un diagramme de flamme (C#, Visual Basic, C++, F#)
Les outils de profilage de Visual Studio pour l’utilisation et l’instrumentation du processeur incluent l’affichage Graphique en flamme. Le Graphique en flamme vous permet d’identifier les chemins chauds dans votre code grâce à une représentation visuelle de l’arborescence des appels. Le chemin chaud est la pile d'appels pour les fonctions qui utilisent le plus de CPU ou le plus de temps, et il s’agit souvent d’un bon endroit pour rechercher des optimisations potentielles des performances. Le graphique donne une vue d’ensemble visuelle de l’endroit où le temps est passé dans votre application et vous pouvez cliquer sur des nœuds spécifiques pour les explorer plus loin.
Pour obtenir un tutoriel qui montre comment améliorer les performances à l’aide du graphique de flamme, consultez Étude de cas : Guide du débutant pour optimiser le code. Pour plus d’informations sur le profileur de processeur, consultez Analyser les performances à l’aide du profilage du processeur.
Analyser les chemins critiques
L'affichage Graphique en flamme se trouve dans la vue des détails du rapport .diagession.
Démarrer une session de profilage avec l’outil Utilisation du processeur ou Instrumentation.
Une fois que vous avez arrêté votre session de profilage et que le rapport se charge, sélectionnez Ouvrir les détails.
Sélectionnez Graphique en flamme dans la sélection déroulante Affichage actuel.
La vue Graphe de flamme s’affiche.
Le chemin chaud est le chemin de code utilisant le plus de processeur ou prenant le plus de temps lorsque vous examinez l'arborescence des appels de haut en bas.
Par défaut, les données affichées dans le graphique de flammes représentent les mêmes données que celles affichées dans l’arborescence d’appels vue pour la période de collecte de données. Plus précisément, pour l'utilisation du processeur, il affiche les valeurs du CPU total. Cette valeur est inclusive. Elle inclut donc l’utilisation du processeur (autrement dit, le temps de calcul du processeur) utilisée par les appels à la fonction et toutes les autres fonctions appelées par la fonction. De la même façon, pour l’Instrumentation, le graphique affiche les valeurs équivalentes à la colonne Total dans l’arborescence des appels.
Toutefois, si vous sélectionnez un nœud, le nœud sélectionné devient la nouvelle ligne de base et utilise 100% de la largeur du graphique de flamme. Cela vous permet de mieux visualiser une arborescence d’appels complexes et d’afficher des noms longs lorsqu’ils sont tronqués ou masqués. Voici un exemple de graphique en flamme qui montre une arborescence d’appels plus complexe.
Pour afficher des détails sur n’importe quel nœud, sélectionnez le nœud.
Choisissez Réinitialiser le zoom pour revenir à la vue par défaut.
Vous pouvez également accéder à différentes vues dans le rapport de profilage en sélectionnant un nœud, puis en choisissant une option telle que Affichage dans l’arborescence des appels dans le menu contextuel.
Inverser le graphe des flammes
Par défaut, le graphique en flamme dans l’outil est affiché à l’envers ou sous la forme d’un graphique icicle, où l’axe y compte la profondeur de pile vers le bas à partir de zéro en haut.
Vous pouvez voir une disposition standard du graphique à flammes en cliquant sur Flip Flame Graph.
Naviguer dans le graphique de flammes
Pour un graphique de flamme complexe, vous pouvez zoomer sur la visualisation en sélectionnant des éléments spécifiques.
Dans l’affichage Graphique de flamme, vous pouvez naviguer en cliquant sur un nœud avec une souris ou en utilisant le clavier. En outre, les raccourcis clavier suivants sont pris en charge.
Raccourci clavier | Commande |
---|---|
Onglet | Accéder à n’importe quel nœud |
Flèche haut/bas | Accédez à l’élément parent ou enfant d’un nœud |
Flèche droite/gauche | Accéder à l’homologue d’un nœud sur la pile |
Entrée | Zoom avant (sélectionner) |
Échapper | Zoom arrière |