Partager via


Identifier les chemins chauds avec un graphe en flamme (C#, Visual Basic, C++, F#)

Les outils de profilage Visual Studio pour l’utilisation et l’instrumentation du processeur incluent la vue Flame Graph . Le graphique Flame vous aide à identifier les chemins d’accès chauds dans votre code en affichant une visualisation de l’arborescence des appels. Le chemin d’accès à chaud est la pile des appels pour les fonctions qui utilisent le plus d’UC ou le plus de temps, et est souvent 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 davantage.

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

Pour un tutoriel montrant comment améliorer les performances à l'aide du Flame Graph, consultez l'étude de cas : Guide du débutant pour l'optimisation du code. Pour plus d’informations sur le profileur de l’UC, voir Analyser les performances à l’aide du profilage de l’UC.

Examinez les chemins d’accès chaud

L’affichage Graph de flamme est dans l’affichage détails du rapport .diagession .

  1. Démarrez 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 Flame Graph dans la sélection déroulante Affichage actuel.

    Capture d’écran montrant l’affichage Flame Graph sélectionné.

    Le mode Flame Graph s’affiche.

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

    Le chemin d’accès à chaud est le chemin de code utilisant le plus d’UC ou le plus de temps à mesure que vous regardez vers le bas dans l’arborescence des appels.

    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 des appels pour la période de collecte de données. Plus précisément, pour l’utilisation du processeur, il affiche les valeurs totales du processeur . 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 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 de 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 l’affichage dans l’arborescence des appels dans le menu contextuel.

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

Retourner le graphe de flamme

Par défaut, le graphique de 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 de zéro en haut.

Vous pouvez afficher une disposition standard du graphique de flamme en cliquant sur Flip Flame Graph.

Capture d’écran montrant Flip Flame Graph sélectionné.

Pour un graphique en flamme complexe, vous pouvez zoomer sur la visualisation en sélectionnant des éléments spécifiques.

Dans l’affichage Flame Graph, vous pouvez naviguer en cliquant sur un nœud avec une souris ou en utilisant le clavier. En outre, il est possible d’utiliser les raccourcis clavier suivants.

Raccourci clavier Commande
Onglet Accédez à n’importe quel nœud
Flèche haut/bas Accédez à l’élément parent ou enfant d’un nœud
Flèches gauche/droite Accéder à l’homologue d’un nœud sur la pile
Entrée Zoom avant (sélectionner)
Caractère d'échappement Faire un zoom arrière