AMAPstudio

User Tools


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

  • 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.8.0_101/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

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

  • with outgoing references (références sortantes de l'objet : celle qu'il contient vers d'autres objets)
  • with incoming references (références qui arrivent vers l'objet depuis d'autres objets)

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

private/installmatinecwithsvnlipse.txt · Last modified: 2016/07/26 12:15 by coligny