Table of Contents

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

Lancer l'application à contrôler

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

Générer un .hprof avec JConsole

ex: /home/coligny/Applications/jdk1.8.0_101/bin/jconsole MBeans > com.sun.management > hotspot diagnostic > operation > dumpheap > 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

MAT Dominator tree

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

  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

Sélection d'un type, clic droit, List objects,

Ressource : https://davidmasclet.gisgraphy.com/index.php?post/2010/02/05/D%C3%A9tecter-et-corriger-les-fuites-m%C3%A9moire-java