User Tools

Site Tools


java_profiling_with_jconsole_eclipse_mat

Java profiling with jconsole + Eclipse MAT

Par exemple, on veut vérifier que la mémoire est bien libérée sur 'Close Project' dans Capsis.

Installer MAT dans Eclipse

  • Eclipse > Aide > Install new Software > MAT

Lancer l'application à contrôler

  • lancer l'application à profiler depuis un terminal

ex: capsis > New Project > PP3 > Creation > Ok > Evolution > 2 etapes > Fermer projet

Générer un .hprof avec JConsole

  • générer un dump .hprof avec jconsole

ex: /home/coligny/Applications/jdk1.6.0_21/bin/jconsole MBeans > com.sun.management > hotspot diagnostic > operation > dumphead > champ 1: fileName.hprof, champ 2: true

Rq1 : vraiment extension .hprof

Rq 2: enregistrer ou copier le .hprof dans le répertoire d'install de l'application capsis sous Eclipse

Sélectionner le .hprof dans Eclipse

  • Dans eclipse : projet Capsis > <F5> pour faire apparaitre de .hprof et double-clic > Leak suspects report

MAT Dominator tree

Puis dominator tree : objets en mémoire au moment du dump

  • chercher les instances de Project et qui détient les références pour voir si c'est normal après une fermeture projet
  • Regex : Project
  • clic droit > List objects with incoming references (objets qui référencent l'élément sélectionné)
  1. Current .previousProject ← suspect…
  2. Pp3Model.project
  3. ProjectDrawing.project ← suspect…
  4. ProjectPanel.project ← suspect…

MAT combien d'instances pour une classe donnée

Barre d'outils MAT > Create an histogram from an arbitrary set of objects

Regex: 'Step'

→ le nombre d'instances est visible

Ressource : https://davidmasclet.gisgraphy.com/post/2010/02/05/Détecter-et-corriger-les-fuites-mémoire-java

java_profiling_with_jconsole_eclipse_mat.txt · Last modified: 2021/12/13 09:28 by 127.0.0.1