Tutoriel : Analyse des données de profilage
Objectifs
Analyser les données collectées à partir du profilage d'un processus Java, à l'aide des vues de profilage et de consignation de la perspective Profilage et consignation selon les procédures suivantes :
- Identification des objets et méthodes consommant le temps maximal
- Identification des classes consommant une quantité de mémoire importante
- Evaluation de l'accès concurrent aux programmes
- Localisation des fuites de mémoire
- Recherche de toutes les exécutions d'une méthode en fonction du temps
- Obtention d'une vue plus étendue du comportement d'exécution en fonction du temps
- Identification des unités d'exécution actives
- Identification du moment où les unités d'exécution sont actives
- Identification des méthodes fréquemment appelées
- Evaluation de la récupération de place
- Identification des différentes phases d'exécution de programme
- Examen des différents appels de méthode
- Examen de l'appelant d'une méthode
Temps requis
1 heure
Avant de commencer
Avant de commencer ce tutoriel, vous devez :
- Installez la plateforme Eclipse, y compris la plateforme d'outils Tests et Performance (TPTP).
- Préparez le fichier de profilage de l'exemple (hcframe.jar) pour l'importation. Le fichier devrait être dans le répertoire suivant :
TPTP_install_dir\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0
Description
Dans ce tutoriel, vous pouvez utiliser les différentes vues de profilage et de consignation afin d'analyser l'exemple PerformanceExample.class. Ce dernier ouvre un cadre contenant deux boutons.
Vous devez exécuter les tâches suivantes :
- Ouverture de la perspective Profilage et consignation dans le plan de travail
- Profilage de la classe PerformanceExample
- Analyse des informations de profilage
Pour mettre à jour les vues lors du contrôle de l'application, cliquez sur le bouton Régénérer les vues
.
Dans le menu Fenêtre, cliquez sur Ouvrir la Perspective > Autre > Profilage et consignation.
Pour profiler la classe PerformanceExample, procédez comme suit :
- Cliquez sur le menu déroulant Profil
et sélectionnez Profil. La boîte de dialogue du profil de lancement
s'ouvre.
- Cliquez deux fois sur Application Java externe pour créer une configuration.
- Passez à l'onglet Principal.
- Entrez org.eclipse.hyades.test.collection.framework.PerformanceExample
dans la zone Nom de classe.
- Cliquez sur Ajouter un fichier JAR pour ajouter le fichier jar contenant
cette classe.
- SélectionnezTPTP_install_dir\eclipse\plugins\org.eclipse.tptp.platform.collection.framework_4.0.0\hcframe.jar
- Cliquez sur Ouvrir. Le fichier jar est ajouté.
- Cliquez sur l'onglet Moniteur. Vous pouvez spécifier les critères de
profilage dans cette page.
- Dans l'onglet Moniteur, développez le noeud intitulé Profilage Java, sélectionnez Analyse de base de la mémoire et sélectionnez la case à cocher située en regard de cette option. Les informations relatives à la mémoire sont ajoutées à la liste des types d'informations à collecter dans l'application.
- Sélectionnez Analyse de la durée d'exécution et sélectionnez la case à cocher en regard de cette option.
Lorsque cette option est sélectionnée, vous pouvez utiliser les vues statistiques pour
analyser les informations relatives au temps. Vous devez collecter des détails graphiques d'exécution pour pouvoir utiliser les vues
Flux d'exécution et Appel de méthode. Ce modèle ayant pour but de vous guider dans toutes les vues de profilage,
y compris les vues Flux d'exécution et Appel de méthode, lorsque vous sélectionnez Analyse de la durée d'exécution, cliquez sur Edition des options,
sélectionnez Afficher les détails du flux d'exécution sous forme de graphique dans la boîte de dialogue Edition des options de profilage.
Cochez également la case Collecter les classes boundary exclues par le jeu de filtres et réglez la Profondeur de la classe boundary sur 1. Cliquez sur Terminer.
- Le jeu de filtres de profilage permet de définir le sous-ensemble d'informations que vous souhaitez analyser. Cela est utile pour ignorer les classes ou les packages que vous ne voulez pas analyser.
Sélectionnez le collecteur de données Profilage Java et cliquez sur Edition des options, la boîte de dialogue du jeu de filtres s'affiche. Sous Contenu du jeu de filtres sélectionné, cliquez sur Ajouter pour
ajouter les packages dont vous voulez collecter les données.
La boîte de dialogue Ajout d'un filtre s'affiche.
- Pour profiler cette classe, entrez org.eclipse.hyades.test.collection.framework.* en tant que Classe.
- Comme Nom de méthode, indiquez * pour n'inclure que les méthodes relatives à cet exemple.
- Cliquez sur OK. Les critères de filtre sont ajoutés à la liste de contenus.
- Pour exclure d'autres classes de la liste du contenu des filtres, cliquez sur Inclure dans la colonne Règle de la classe, et remplacez cette valeur par Exclure.
- Cliquez sur Suivant pour accéder à la page Limites. Cette page permet de contrôler la quantité
de données collectée, en fonction du temps écoulé ou du nombre d'appels de méthode spécifié. Acceptez les valeurs par défaut. Cliquez sur Terminer pour appliquer les modifications effectuées et fermer.
- Cliquez sur l'onglet Destination. ProfileProject et le moniteur par défaut sont les
ressources de profilage par défaut qui permettent de stocker des données à partir de
cette session de profilage.
- Cliquez sur Profil.
- Les ressources de profilage requises sont créées et l'agent et le processus
apparaissent dans la vue Moniteur de profilage.
- Activez la visualisation des Moniteurs en sélectionnant Présentation distribuée comme dans la capture d'écran ci-dessous. Vous pouvez ainsi voir le moniteur qui regroupe vos données ainsi que la machine sur laquelle votre plan de travail fonctionne.

Visualisation du comportement d'exécution sur une période de temps
Vous pouvez examiner l'exécution de l'application à l'aide de la vue et du tableau Flux
d'exécution.
L'exécution de la totalité du programme est représentée dans cette vue, sous forme graphique et dans un tableau. Dans la vue Flux d'exécution, le temps est représenté par l'axe vertical. Le tableau Flux d'exécution est ouvert sous la vue Flux d'exécution, et répertorie chaque unité d'exécution, et les méthodes appelées par chacune d'entre elles.
- Dans la vue Moniteur de profilage, sélectionnez votre moniteur, cliquez
dessus à l'aide du bouton droit de la souris et sélectionnez Ouvrir avec >
Flux d'exécution pour ouvrir la vue Flux d'exécution. La vue Flux d'exécution s'affiche.
- Pour examiner une méthode donnée, cliquez sur son nom pour la sélectionner. Toutes les méthodes appelées sont ensuite
mises en évidence en jaune. La longueur verticale de la zone mise en surbrillance indique le temps de base de la méthode. La valeur exacte du temps de base s'affiche sur la ligne d'état.

Si vous passez le curseur sur n'importe quel objet de la vue, des informations détaillées apparaîtront dans la barre de statut en bas de la fenêtre.
- Utilisez l'outil Zoom avant
pour activer le curseur, puis pointez et cliquez pour agrandir une zone.
Remarque : Pour mettre à jour les vues lors du contrôle de
l'application, cliquez sur le bouton Régénérer les vues
.
Identification des unités d'exécution actives
Dans la vue Flux d'exécution, chaque unité d'exécution contient des périodes d'activité identifiées par une profusion d'appels de méthode. Dans la représentation symbolique, la première méthode appelée est un segment et les méthodes qu'elle appelle ultérieurement apparaissent sous forme d'autres segments à droite. La séquence des appels de méthode se déroule de gauche à droite ; les parties actives de l'unité d'exécution sont identifiées par cette progression de gauche à droite.
Lors de la sélection de la totalité de la section qui encadre la séquence des appels de méthode, le temps de base passé pour l'exécution de cette séquence s'affiche sur la ligne d'état. Pour consulter le temps de base pendant lequel l'unité d'exécution est active, recherchez
la différence entre les temps suivants :
- Pointez sur la ligne horizontale supérieure de la zone jaune sélectionnée pour afficher le temps de base correspondant sur la ligne d'état.
- De même, pointez sur l'angle inférieur de la zone jaune sélectionnée (qui couvre
la période d'exécution lorsque la séquence de méthode est active), puis visualisez le
temps de base à cet emplacement.
Conseils
- Si le graphique est saturé et trop difficile à lire, faites un zoom avant
dans la zone saturée.
- Lors de la sélection d'une méthode, toutes les méthodes que celle-ci appelle sont
mises en évidence en jaune.
- Vous pouvez faire glisser les vues et les placer sur le plan de travail, afin de les
organiser simultanément, si nécessaire.
- Chaque fois que vous pointez le curseur dans un emplacement, le temps de base
correspondant est indiqué dans la barre d'état.
- Pour réinitialiser l'affichage de la vue, cliquez sur le bouton Début
d'écran.
Identification des méthodes fréquemment appelées
Pour identifier les méthodes fréquemment appelées, procédez comme suit :
- Utilisez l'outil Zoom
pour agrandir une séquence d'appels de méthode.
- Recherchez les segments de la même couleur dans la zone sélectionnée. Ces segments identifient les méthodes de la même instance de classe qui ont été appelées plusieurs fois.
- Vérifiez la longueur des segments de couleur différente (chacun représentant une méthode). Plus le segment est long, plus la durée d'exécution de cette méthode est longue.
Evaluation de la récupération de place
En général, il est impossible de déterminer si la récupération de place a eu lieu
pour un objet en inspectant les segments dans une unité d'exécution utilisateur de cette
vue.
Procédez de la manière suivante :
- L'unité d'exécution de récupération de place est masquée par défaut. Activez-la en sélectionnant Unités d'exécution >GC dans le menu Contexte de la vue.
- Vérifiez la colonne située à l'extrémité gauche de cette vue. Cette colonne est
réservée à l'unité d'exécution de récupération de place et est appelée colonne d'unité
d'exécution RP.
- Vérifiez si la colonne d'unité d'exécution RP contient un rectangle fin unique. Ce dernier se trouve probablement à l'extrémité inférieure des appels de méthode de l'objet. Ce rectangle apparaît dans la colonne d'unité d'exécution RP chaque fois qu'une
récupération de place a lieu pour un objet.
Identification des phases d'exécution du programme
Identification de la phase d'initialisation
- Utilisez l'outil Zoom avant
pour agrandir la séquence des appels de méthode dans la partie supérieure de
l'unité d'exécution principale.
- Notez les méthodes qui sont identifiées par -init-
- Cliquez pour sélectionner une méthode de ce type. La barre d'état est mise à jour
pour indiquer que la méthode contribue à l'initialisation (affectation de valeurs aux
variables utilisées dans l'application).
Analyse des méthodes à l'aide de la vue Appel de méthode
- Dans la vue Moniteur de profilage, sélectionnez un moniteur ou un agent. Cliquez à l'aide du bouton droit de la souris, puis sélectionnez Ouvrir avec> Flux d'exécution. La vue Flux d'exécution apparaît.
- Sélectionnez la méthode à examiner, cliquez à l'aide du bouton droit de la souris,
puis sélectionnez Afficher l'appel de méthode.
- Utilisez l'outil Zoom avant
pour agrandir une section de l'écran.Les segments comportent un code couleur par classe et sont connectés par des lignes
horizontales représentant des appels de méthode.
- Sélectionnez une méthode en cliquant sur son nom.
- Cliquez sur le bouton Régénérer les vues
pour vous assurer que les informations affichées sont à jour.
- Notez la ligne suivante :

Cette ligne affiche le nom de la méthode, suivi de n/m, où n représente l'appel affiché parmi un total de m appels associés.
- Cliquez sur Précédent
et
Suivant
pour
parcourir tous les appels de la méthode sélectionnée (ou chaque message vers l'objet sélectionné). La fraction située sur la barre d'outils se transforme pour indiquer l'appel affiché.
Recherche de l'appelant d'une méthode
Pour rechercher l'appelant d'une méthode, suivez les étapes ci-dessous dans la vue
Appel de méthode :
- Pour afficher l'appelant de la méthode, cliquez sur le bouton Afficher l'appelant
. La méthode s'affiche avec à gauche, le nom de son appelant.
- Pour afficher plus de détails sur l'appelant de la méthode de chaque nouvel appel visualisé, positionnez le curseur sur le segment représentant l'appelant dans la vue. La ligne d'état affiche les informations relatives à l'appelant.
- Pour consulter la méthode appelée par une méthode sélectionnée, cliquez sur le bouton Afficher la méthode appelée
.
(C) Copyright IBM Corporation 2000, 2006.