===== 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 : - Batch ou tout exécutable lancé par java - 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éé.