Graphiques de type "flamme"
Cloud Profiler affiche les données de profilage à l'aide de graphiques de type "flamme". Contrairement aux arborescences et aux graphiques, les graphiques de type "flamme" utilisent efficacement l'espace d'affichage en représentant de grands volumes d'informations sous un format compact et lisible.
En guise de présentation, cette page explique comment convertir une arborescence en graphique de type "flamme" et récapitule ses caractéristiques principales.
Créer un graphique de type "flamme".
Pour créer un graphique de type "flamme" à partir d'une arborescence, suivez les étapes illustrées dans le diagramme suivant :
Retirez de l'arborescence les flèches indiquant les appels de fonction.
Remplacez chaque nœud par un cadre.
Les cadres sont de forme rectangulaire et sont tous de la même hauteur. Pour l'exemple de cette page, le temps CPU total utilisé par la fonction nommée dans le cadre détermine la largeur de celui-ci.
Le pseudo-code pour chacune des fonctions est décrit dans le tableau suivant. Le temps CPU perso est défini par les tâches nécessitant une utilisation intensive des processeurs qui sont effectuées lors de l'exécution d'une fonction :
Pseudo-code de la fonction Temps CPU perso
(secondes)Temps CPU total
(secondes)func main(): foo1() foo2() // CPU intensive work // for 2 seconds
2 4 + 3 + 2 = 9 func foo1(): bar() // CPU intensive work // for 1.5 seconds
1,5 2,5 + 1,5 = 4 func foo2(): bar() // CPU intensive work // for 0.5 seconds
0,5 2,5 + 0,5 = 3 func bar(): // CPU intensive work // for 2.5 seconds
2,5 2,5 L'étape suivante consiste à supprimer l'espace vertical entre les cadres et à aligner les cadres sur la gauche tout en préservant les séquences d'appels. Si vous le souhaitez, vous pouvez définir un jeu de couleurs et colorer les cadres suivant la définition. Par exemple, vous pouvez colorer les cadres en fonction de leur package, du temps CPU total, du temps CPU perso ou selon une mesure différente.
Après avoir supprimé l'espace blanc et coloré les cadres en fonction du temps CPU perso, le graphique de type "flamme" s'affiche désormais comme suit :
Notez que les piles d'appels pour
foo1
etfoo2
ont été préservées, même si la pile d'appels commençant parfoo2
se trouve désormais à côté du cadre defoo1
.
Résumé
Cet exemple simple illustre les éléments suivants :
- Les graphiques de type "flamme" sont la représentation compacte d'une arborescence. Ils vous permettent de recréer une pile d'appels en traçant les cadres du haut vers le bas.
- Les cadres nomment une fonction. La largeur du cadre correspond à la mesure relative du temps CPU total de cette fonction.
Dans cet exemple, étant donné que le temps CPU total de la fonction
foo2
est égal à un tiers du temps CPU total de la fonctionmain
, le cadre defoo2
correspond au tiers de la largeur du cadre demain
. - La largeur de l'espace vide sous un cadre indique la mesure relative du temps CPU perso pour la fonction nommée dans ce cadre.
Par exemple, sous le cadre
foo1
, 1,5 unité est vide et 2,5 unités sont occupées parbar
. Par conséquent, le temps CPU perso defoo1
équivaut à 37,5 % du temps CPU total, soit 1,5 secondes. Lorsque vous suivez une pile d'appels, la largeur des cadres diminue, car le temps CPU total de l'appelé ne peut jamais excéder le temps CPU total de l'appelant. Ce comportement va déterminer la forme du graphique de type "flamme".
Dans l'exemple,
foo1
appellebar
, et le temps CPU total defoo1
est défini comme étant le temps CPU total debar
, plus le temps CPU perso defoo1
. Par conséquent, le temps CPU total debar
ne peut pas excéder le temps CPU total defoo1
.
Étape suivante
- Sélectionner les profils à analyser
- Interagir avec le graphique de type "flamme"
- Filtrer le graphique de type "flamme"
- Effectuer un focus à partir d'un graphique de type "flamme"
- Comparer des profils