Graphique de flammes

L'onglet Flame Chart (Graphique de flammes) fournit un graphique d'appel inversé qui agrège les piles d'appels identiques. En d'autres termes, les méthodes ou fonctions identiques qui partagent la même séquence d'appelants sont collectées et représentées sous la forme d'une barre plus longue dans un graphique de flammes (plutôt que de les afficher sous la forme de plusieurs barres plus courtes, comme c'est le cas dans un graphique d'appel). Cela vous permet d'identifier plus facilement les méthodes ou fonctions qui consomment le plus de temps. Toutefois, cela signifie également que l'axe horizontal ne représente pas une chronologie, mais plutôt la durée d'exécution relative de chaque méthode ou fonction.

Pour illustrer ce concept, prenons l'exemple du graphique d'appel de la figure 1. Notez que la méthode D effectue plusieurs appels à B (B1, B2 et B3) et que certains de ces appels à B effectuent un appel à C (C1 et C3).

Figure 1 : Graphique d'appel avec plusieurs appels de méthode partageant une séquence d'appelants commune.

Étant donné que B1, B2 et B3 partagent la même séquence d'appelants (A → D → B), ils sont agrégés, comme illustré à la figure 2. De même, C1 et C3 sont agrégés, car ils partagent la même séquence d'appelants (A → D → B → C). Notez que C2 n'est pas inclus, car il a une séquence d'appelants différente (A → D → C).

Figure 2. Agrégation de méthodes identiques qui partagent la même pile d'appel.

Les appels agrégés sont utilisés pour la création du graphique de flammes, comme illustré à la figure 3. Notez que, pour un appel donné dans un graphique de flammes, les appelés qui consomment le plus de temps CPU apparaissent en premier.

Figure 3. Représentation sous forme de graphique de flammes du graphique d'appel illustré à la figure 5.