Profiler donne des informations sur votre application, telles que son utilisation du processeur, de la mémoire et du tas. Il fournit également des détails sur les threads d’application. Ce chapitre traite de l’utilisation de VisualVMtool pour le profilage d’applications Java. Il peut profiler des entités telles que CPU et heap.
Il est recommandé aux lecteurs de ce tutoriel de se familiariser avec l’application profilerconcepts.
Introduction
VisualVM est un outil visuel qui intègre les outils JDK et vous donne de puissantes capacités de profilage. Il vous permet de générer et d’analyser des données de tas, de traquer les fuites de mémoire, de surveiller le garbage collector et d’effectuer un profilage de la mémoire et du processeur.
Avantages
-
Interface visuelle pour les applications Java locales et distantes exécutées sur JVM.
-
Surveillance de l’utilisation de la mémoire de l’application et du comportement d’exécution de l’application.
-
Surveillance des threads d’application
-
Analyser les allocations de mémoire à différentes applications.
-
Décharges de fil – très pratique en cas d’impasse et de conditions de course.
-
Décharges de tas – très pratique pour analyser l’allocation de mémoire de tas.
Configuration
Dans cette section, nous allons apprendre les étapes effectuées pour configurer VisualVM. Les étapes sont les suivantes −
-
Téléchargez-le ici.
-
Extrayez le fichier zip.
-
Accédez à etc/visualvm.conf fichier et ajoutez la ligne suivante dans ce fichier −
visualvm_jdkhome=<path of JDK>
-
Si votre JDK est installé dans le C:\Program Répertoire Files\Java\jdk-9.0.1 puisil devrait ressembler à ceci −
visualvm_jdkhome="C:\Program Files\Java\jdk-9.0.1"
Application de surveillance
Voyons maintenant comment surveiller l’application. Considérez les étapes suivantes pour comprendrela même chose −
- Double-cliquez sur le visualvm.EXE.
- Sélectionnez l’application dans le volet gauche.
- Sélectionnez l’onglet moniteur.
Vous serez dirigé vers une fenêtre où vous obtiendrez les détails sur le PROCESSEUR, le Tas, les classes et les threads. Pour être précis avec l’utilisation, passez la souris sur n’importe quel graphique. Nous pouvons voir l’utilisation de Tas dans la capture d’écran ci-dessus.
Informations sur les threads
L’application Java peut contenir plusieurs threads d’exécution. Pour en savoir plus sur les threads, sélectionnez l’onglet Threads d’une application particulière. Il donnera diverses statistiques surles threads comme le nombre de threads vivants et de threads démons. Les différents états du fil sont Courir, Dormir, Attendre, Se garer et Surveiller.
Application d’échantillonnage
VisualVM prend en charge l’échantillonnage du processeur, de la mémoire et la détection des fuites de mémoire. Pour échantillonner une application, sélectionnez application et choisissez l’onglet exemple −
Échantillonnage CPU
Pour l’échantillonnage CPU, cliquez sur le bouton CPU comme indiqué dans la capture d’écran suivante −
Profilage de mémoire
Pour le profilage de mémoire, cliquez sur le bouton Mémoire comme indiqué dans la capture d’écran suivante −
Fuites de mémoire
Une fuite de mémoire se produit lorsqu’une application, en cours d’exécution, remplit lentement le tas d’objets qui ne sont pas automatiquement supprimés par le programme.
Si un objet qui n’est pas utilisé par le programme n’est pas supprimé, il reste en mémoire et le GC ne peut pas récupérer son espace. Si le nombre d’octets et le nombre d’instances dans yourapplication devaient augmenter constamment et de manière significative dans votre programme au point d’utiliser tout l’espace, cela peut être une indication d’une fuite de mémoire.
Application de profilage
Dans cette section, nous allons apprendre à profiler une application. Pour profiler une application, sélectionnez application dans le volet gauche et cliquez sur l’onglet profil −
Profilage CPU
Pour effectuer le profilage CPU, cliquez sur le bouton CPU comme indiqué dans la capture d’écran ci−dessous −
Profilage mémoire
Pour effectuer le profilage CPU, cliquez sur le bouton CPU comme indiqué dans la capture d’écran ci-dessous –