Table des matières

Presentation

JvisualVM est un profiler. Il est inclu dans chaque JDK récent. Il offre des fonctionnalités de profiler en terme de CPU et de mémoire

Mise en place de visual VM

Coté client (là où est installé jvsualvm)

D:\dev\jdk\64bits\jdk1.6.0_45\bin\jvisualvm.exe

Cas d'un agent local

Définition : Le jvisualvm qu'on va lancer se situe sur le même poste de travail que le programme qu'on veut profiler.

Le programme peut être :

  1. Batch ou tout exécutable lancé par java
  2. Instance tomcat

Normalement, quand visual VM sera lancé, il détectera automatiquement les instances java lancées en local.

Cas d'un agent distant

Définition : Le jvisualvm qu'on va lancer ne se situe pas sur le même poste de travail que le programme qu'on veut profiler.

Si on souhaite faire du Visual VM pour analyser une machine distante, il faut :

+E1 : ajouter ceci dans les arguments de la ligne de commande du programme distant à profiler (un peu comme pour un lancement en remote debug)

  ...
  -Dcom.sun.management.jmxremote.port=9388 \
  -Dcom.sun.management.jmxremote.authenticate=false \
  -Dcom.sun.management.jmxremote.ssl=false \
  ...

Remarque : 9388 ou un autre port tcp

+E2 : dans jvisualvm : ajouter un serveur distant en fournissant l’ip et le port 9388 précédent

Utilisation de jvisualvm

L’onglet sampler correspond au recorder ; il faut cliquer sur le bouton cpu pour activer la recording cpu, et rappuyer dessus pour le désactiver.

Idem pour le bouton mémoire.

Cliquer sur snapshot permet de créer un rapport de tout ce qui a été créé.