Initiation : analyse de fuite de mémoire

Les fuites de mémoire qui, dans Java, résultent souvent du fait que des objets contiennent des références inappropriées, peuvent dégrader la performance et éventuellement entraîner une panne du programme. La perspective Profilage et Journalisation comprend des vues permettant d'analyser l'utilisation de la mémoire de votre application et de détecter ces fuites.

Les vues suivantes sont disponibles pour l'analyse de fuite de mémoire :

Après identification d'une fuite, vous pouvez utiliser Probekit pour concevoir des sondes personnalisées afin de consulter des objets spécifiques qui peuvent connaître une fuite.

Pour identifier rapidement des candidats de fuite, exécutez une analyse de fuite en mémoire en profilant avec un jeu de profilage Analyse de fuite de mémoire. Vous pouvez également étudier l'utilisation de la mémoire en profilant avec le jeu de profilage Analyse de mémoire ; vous pouvez parcourir ces données à l'aide des vues Graphique de références d'objets, Références d'objets et Détails de l'objet, mais vous ne pouvez pas utiliser les données pour générer une liste de candidats de fuite.

Sujet parent : Initiation à l'identification d'incident en contexte d'exécution

Exécution d'une analyse de fuite de mémoire

L'analyse de fuite de mémoire utilise des algorithmes avancés pour identifier d'éventuelles fuites de mémoire sur la base d'une comparaison de deux vidages verticaux. Vous pouvez définir une configuration de profilage pour capturer des vidages verticaux manuellement ou pour capturer des vidages verticaux automatiquement à intervalles spécifiés dans le jeu de profilage.

Conditions préalables :

Pour analyser des fuites :

  1. Dans l'onglet Profilage de la boîte de dialogue Profiler, sélectionnez le jeu de profilage Analyse de fuite de mémoire - vidages verticaux manuels ou Analyse de fuite de mémoire - vidages verticaux temporisés.
  2. Cliquez sur Profiler pour lancer votre application. La vue Candidats de fuite s'ouvre et donne des informations de statut de l'exécution du profilage.
  3. Si vous capturez des vidages verticaux manuels, procédez comme suit :
    1. Lancez votre application : utilisez l'application jusqu'à ce que tout ce qui doit se trouver en mémoire le soit effectivement. Exécutez les transactions que vous souhaitez étudier plusieurs fois.
    2. Capturez le premier vidage de tas en cliquant sur le bouton Capturer vidage de tas bouton Capturer vidage de tas de la vue Candidats de fuite. Le vidage de tas est ajouté au Moniteur du profilage en tant que ressource de profilage.
    3. Exécutez les transactions que vous souhaitez étudier plusieurs fois encore.
    4. Capturez un second vidage de tas. Vous pouvez à présent terminer votre application.
  4. Si vous capturez des vidages verticaux temporisés, permettez à votre application d'être exécutée jusqu'à ce que la vue Candidats de fuite indique que les deux vidages verticaux ont été capturés et que vous pouvez lancer l'analyse. Par défaut, le premier vidage de tas est capturé après 10 minutes (600 secondes) et le second 10 minutes plus tard. Vous pouvez à présent terminer votre application.
  5. Dans la vue Candidats de fuite, cliquez sur le bouton Analyser à la recherche de fuites bouton Analyser à la recherche de fuites.
  6. Dans la boîte de dialogue Sélectionner des options d'analyse de fuite, cliquez sur OK. Une fois l'analyse terminée, la vue Candidats de fuite répertorie les objets du tas contenant encore des références à des objets au moment du second vidage de tas, les objets les plus susceptibles de connaître une fuite apparaissent en premier.
  7. Cliquez deux fois sur le candidat de fuite le plus probable pour l'afficher dans le graphique de références d'objets. Le graphique met en évidence le chemin entre la racine de la fuite (l'objet contenant les références) et l'objet de fuite potentiel. Ceci vous permet de parcourir le graphique. Vous pouvez afficher des informations statistiques sur un quelconque objet ou segment de chemin en plaçant le curseur sur cet objet ou segment. Vous pouvez ainsi consulter la mémoire existante et savoir s'il est possible ou non de supprimer certaines références.
  8. Cliquez deux fois sur un objet du graphique de références d'objets pour afficher des informations sur l'objet dans Détails de l'objet. Cette vue indique toutes les informations sur l'objet en cours sous forme de tableau, notamment des données supplémentaires sur les référenceurs (objets qui font référence à l'objet en cours) et les référencés (objets auxquels l'objet en cours fait référence).

Vous pouvez à présent modifier votre code pour nettoyer les références qui ne sont plus utiles de telle sorte que le programme de collecte corbeille puisse collecter les objets inutiles. Profilez de nouveau votre application pour vérifier que la fuite est résolue et pour détecter d'autres fuites.

Pour plus d'informations, consultez Analyse de fuites de mémoire.

Etude de l'utilisation de la mémoire avec une analyse de mémoire

Le jeu de profilage Analyse de mémoire, avec le type de profilage Analyse de mémoire/fuite, vous permet de collecter des références d'objet et de consulter des vidages verticaux. Notez que vous pouvez afficher ces données dans le graphique de références d'objets, Références d'objet et Détails de l'objet, mais que vous ne pouvez pas les utiliser pour générer une liste de candidats de fuite.

Pour étudier l'utilisation de la mémoire :

  1. Dans l'onglet Profilage de la boîte de dialogue Profiler, sélectionnez le jeu de profilage Analyse de mémoire. Notez que ce jeu de profilage n'identifie pas les candidats de fuite automatiquement.
  2. Cliquez sur Profiler pour lancer votre application.
  3. Exécutez les parties de votre application que vous souhaitez analyser.
  4. Dans le Moniteur du profilage, cliquez à l'aide du bouton droit de la souris sur la ressource de profilage d'agent, puis sélectionnez Collecter références d'objet dans le menu en incrustation. Vous pouvez à présent terminer votre programme. Une ressource de profilage avec les données collectées de l'exécution apparaît dans le Moniteur du profilage.
  5. Pour afficher les références d'objet, cliquez à l'aide du bouton droit de la souris sur la ressource de profilage puis, dans le menu en incrustation, sélectionnez Ouvrir avec..., suivi du nom de la vue que vous souhaitez ouvrir.
Conditions d'utilisation | Commentaires
(C) Copyright IBM Corporation 2000, 2004. All Rights Reserved.