Le blog de Fabien DUMINY

Un blog utilisant WordPress

Skip to: Content | Sidebar | Footer

Devoxx France 2013 – Déminage d’une application avec JRockit Mission Control

2 mai, 2013 (09:00) | Devoxx France 2013, Java | By: fabien

A l’occasion de Devoxx France 2013, j’ai assisté à la conférence intitulée « Déminage d’une application avec JRockit Mission Control » présentée par François Ostyn.

JRockit Mission Control est un outil pour la JVM JRockit comprenant :

  • une console JMX
  • un enregistreur d’événements se produisant dans la JVM : Flight recorder
  • un analyseur de mémoire pour aider à localiser les fuites mémoire : Memleak analyser

Afin de ne maintenir qu’une seule JVM, Oracle a créé le projet HotRockit dans le but de fusionner JRockit et Hotspot. Ses résultats seront progressivement intégrés dans Hotspot.

Depuis Java SE 7 update 4, Hotspot a les même mesures (metrics) que JRockit, ce qui permet d’utiliser JRockit Mission Control avec Hotspot. Celui-ci peut être utilisé de 2 manières : avec le plugin eclipse ou en ligne de commande.

Grâce au plugin eclipse, Memleak analyser détecte l’accroissement du nombre d’instances d’une classe et permet la visualisation de la pile d’appel. Flight recorder peut récupérer à postériori la liste des événements, ce qui permet de visualiser l’utilisation du tas, du processeur … En mode déconnecté, le plugin permet aussi de voir les fuites mémoire mais pas le graphe d’appel (visible uniquement en mode connecté).

La commande jcmd (appelée jrcmd dans JRockit) permet de faire les même requêtes qu’avec le plugin eclipse. Celle-ci permet aussi de récupérer un fichier .jfr visualisable avec le plugin eclipse.

Pour terminer, il faut noter que JRockit Mission Control est gratuit en développement mais pas en production et, d’après François, il est plus rapide que des outils de profilage tels que Yourkit car les mesures (metrics) sont codées en natif dans la JVM.

Be Sociable, Share!
Share and Enjoy

Write a comment





If your website is claim enabled, it will be notified that you have posted here.

MySQL query error