Partage via


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.

Capture d’écran montrant Flame Graph avec le menu contextuel affiché.

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.

  1. Démarrer une session de profilage avec l’outil Utilisation du processeur ou Instrumentation.

  2. Une fois que vous avez arrêté votre session de profilage et que le rapport se charge, sélectionnez Ouvrir les détails.

    Capture d’écran montrant Ouvrir les détails sélectionnés.

  3. Sélectionnez Graphique en flamme dans la sélection déroulante Affichage actuel.

    Capture d’écran montrant la vue Flame Graph sélectionnée.

    La vue Graphe de flamme s’affiche.

    Capture d’écran montrant la vue d’ensemble de Flame Graph affichée.

    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.

    Capture d’écran montrant Flame Graph pour une arborescence d’appels complexes.

    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.

    Capture d’écran montrant l’option Flame Graph à afficher dans l’arborescence des appels.

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.

Capture d’écran montrant le graphique en flamme Flip sélectionné.

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