Analyse dump mémoire JVM sur AIX (ibm)

La JVM d’IBM sur AIX produit un dump mémoire au format non standard. La JVM de Sun (pardon Oracle….) crée un fichier HPROF tandis que la JVM d’IBM crée un fichier PHD (Portable Heap Dump). C’est un peu déconcertant car JVisualVM ne sait pas lire le PHD. La solution est alors d’utiliser Eclipse MAT dont l’ascendance génétique n’est pas étrangère à IBM.

Après avoir téléchargé la dernière version de MAT sur le site //www.eclipse.org/mat/ il faudra tout de même encore ajouter une extension pour qu’il puisse lire les PHD. Dans le menu “install new Software” on devra ajouter le site

//public.dhe.ibm.com/software/websphere/runtimes/tools/dtfj/

On peut également ajouter MAT (Memory Analyzer Tool) en temps que plugin dans un Eclipse standard. Pour cela il faudra ajouter le site suivant dans le menu “install new software”:

//download.eclipse.org/mat/1.4/update-site/

Ensuite pour pouvoir ouvrir des dump de JVM ibm il faut ajouter l’extension vue en premier.

Eclipse Luna sous Debian 7 ne démarre pas

En train de tester en parallèle les IDE Netbeans et Eclipse sous Debian 7 Wheezy, on constate rapidement que les versions dans le dépôt ne sont pas les plus récentes. En effet Debian 7 est livré avec java 6. Netbeans et Eclipse sont respectivement disponibles en version 7 et 3.8.

Un petit passage par le gestionnaire de paquet aptitude permet de récupérer java 7 en version openjdk comme la 6 installée par défaut. D’autres jvm sont présentes, il suffit d’aller voir en faisant:

ls -l /usr/lib/jvm

Afin de bénéficier de java 8 il faudra télécharger la JVM chez Oracle. On pourra installer les JDK Oracles n’importe où et ajouter des liens symboliques dans le répertoire /usr/lib/jvm

La dernière version de Netbeans, 8.0.1 est obtenu sous la forme d’un installeur sh qui trouve immédiatement le dernier JDK (sans doute en scannant le répertoire cité précédemment). L’installation du dernier Eclipse, nom de code Luna, version 4.4.1 est un peu plus brute: c’est une simple archive.

Arrive le moment du lancement: Netbeans démarre sans souci, à l’aide du raccourci ajouté sur le bureau. Malheureusement je ne peux pas en dire autant d’Eclipse qui plante au bout d’une dizaine de seconde sur le “splash screen”.  La JVM par défaut sous Debian 7 est l’open-jdk 6, j’ai eu donc l’idée de tester Eclipse avec les autres JVM disponibles sous mon système: java 6 en version oracle, java 7 en open-jdk, en oracle, java 8 de oracle. Pour cela il faut utiliser le fichier eclipse.ini en ajoutant l’option -vm comme par exemple

-vm
/usr/lib/jvm/jdk1.8.0/bin/java

Rien à faire, Eclipse plante toujours. La pile d’erreur indique un problème avec GTK et finalement c’est le prix à payer quand on ne fait pas du pure Java. Ah ! Eclipse que tous les développeurs ont adoptés parce que SWT, le boîte à outils graphique, faisait du natif là où Swing écrit les widget avec du code Java donc plus lent. Voilà ce qui arrive quand on vend son âme au diable, fini le WORA. C’est un comble pour un développeur Java de devoir modifier son IDE pour lui dire d’utiliser GTK2, solution pour faire fonctionner Eclipse sous Debian 7. Dans le fichier eclipse.ini il faut mettre juste après l’option startup :

--launcher.GTK_version
2