Mesure de la mémoire des applications Java sous Windows

Enquête sur la taille de la mémoire Java utilisée

Lorsque vous souhaitez vérifier la quantité de mémoire réellement utilisée par une application Java dans un environnement Windows, vous ne pouvez pas la vérifier dans l'onglet Processus du Gestionnaire des tâches. ** Le Gestionnaire de tâches affiche la taille de la mémoire que la JVM a allouée dans son ensemble. ** ** Cette fois, je vais vous montrer comment utiliser deux méthodes pour avoir une idée approximative de la taille de la mémoire que Java utilise réellement. En utilisant cette méthode, vous pouvez voir la quantité approximative de mémoire utilisée sans affecter de manière significative le traitement sans modifier l'application.

1. Comment utiliser Jstat

Pour la mesure de la mémoire utilisée à l'aide de la commande jstat, reportez-vous à Autre article. ** Vous pouvez également utiliser la commande Jstat à partir de l'invite de commande dans un environnement Windows. ** Dans un environnement Windows, le fichier jstat.exe existe dans le dossier bin du JDK. En outre, l'ID de processus spécifié par la commande jstat est la même valeur que le PID du gestionnaire de tâches.

2. Comment utiliser jvisualvm

Pour l'environnement GUI, en utilisant ** Java VisualVM (jvisualvm) ** Vous pouvez facilement vérifier l'utilisation de la mémoire. ** jvisualvm est un outil qui illustre les données sur les applications Java dans un format qui vous permet de naviguer rapidement. ** Explique comment mesurer la mémoire à l'aide de cet outil.

Installez jvisualvm

Comme jstat, cet outil est livré avec le JDK Oracle depuis le début. Il existe un fichier jvisualvm.exe dans le dossier bin du JDK. Si vous ne le trouvez pas, téléchargez-le depuis le Site officiel.

Surveillance de la mémoire JVM avec jvisualvm

Vérifions l'utilisation de la mémoire du tas de l'application JAVA. Commencez par démarrer jvisualvm à l'avance. Démarrez ensuite l'application dont vous souhaitez vérifier la mémoire. Lorsque vous démarrez l'application, l'application lancée sera affichée dans la liste des applications Java sur la gauche, alors cliquez dessus. visualVM

Cliquez sur l'onglet "Moniteur" pour voir divers graphiques sur la JVM. Pour vérifier la mémoire du tas, le graphique en haut à droite s'affiche. Vous pouvez vérifier la taille de tas actuellement utilisée dans un affichage graphique facile à comprendre.

visualVM(グラフ)

Vérification détaillée de la mémoire utilisée

Une chose à noter est que la taille du "tas utilisé" dans le graphe de tas ci-dessus ** est un mélange de données qui sont réellement utilisées à ce moment-là et de données qui ne sont plus utilisées mais qui restent en mémoire. Je vais. ** Si vous voulez voir la taille du tas réellement utilisé, il vous suffit de vérifier la quantité de données réellement utilisées. Vous pouvez vérifier l'utilisation réelle de la mémoire en faisant attention à la synchronisation après l'occurrence d'un GC complet. Voir Articles Jstat pour plus d'informations.

Ajouter des informations GC

Vous pouvez vérifier l'état de GC en ajoutant un plug-in à l'application. Ouvrez une fenêtre en sélectionnant [Outils] ⇒ [Plug-ins], puis sélectionnez la balise [Plug-ins disponibles]. Ajoutez le plug-in ** "Visual GC" ** à partir de plusieurs plug-ins. Si l'ajout réussit, un nouvel onglet appelé «Visual GC» sera ajouté. En sélectionnant cet onglet, vous pouvez également vérifier l'état du GC dans un graphique. visualVM(GC)

Précautions lors de l'utilisation de jvisualvm

jvisualvm se spécialise dans l'affichage graphique rapide de diverses données liées à la JVM. Par conséquent, ** Il n'est pas possible de spécifier la plage d'affichage du graphique ou de générer des valeurs numériques, il n'est donc pas approprié pour une enquête détaillée. ** Utilisez jvisualvm si vous souhaitez vérifier facilement les informations en temps réel de l'application en cours d'exécution. Si vous souhaitez étudier un peu plus en détail, vous devez utiliser correctement la méthode utilisant jstat.

Recommended Posts

Mesure de la mémoire des applications Java sous Windows
Volume d'essais pour créer une application Web Java sur Windows Server 2016
Installez Java 9 sur Windows 10 et CentOS 7
Développer gRPC sur la série Windows + Java 7 + Maven 2
Mesure de la mémoire pour les applications Java utilisant jstat
Examiner l'utilisation de la mémoire des éléments Java
Utilisation de JupyterLab + Java avec WSL sous Windows 10
Surveillance de l'état des applications Java à l'aide d'Elasticsearch
Retour sur les bases de Java
Création d'applications Web Java sur Windows Server 2016
Rôle de JSP dans les applications Web [Java]
Créer un serveur d'applications Web (Java) sur VPS
[Développement Java] Mémoire Java
État de l'application Java 9+
Basculer entre plusieurs versions de Java sur Mac
[Solution] Java ne peut pas être installé sur Windows 10 + ATOK 2017
[Java] Présentation de Java
J'ai essayé d'exécuter une application d'accès à la base de données sur IKS + Db2 sur IBM Cloud (6. Préparation de l'application d'accès à la base de données (java))
À partir d'avril 2018 Comment installer Java 8 sur Mac
Procédure d'installation du Java SE Development Kit (JDK) sous Windows
Bibliothèque de mesures de couverture Java
Caractéristiques prévues de Java
Installez Corretto 8 sur Windows
[Java] Importance de serialVersionUID
Installez Java sur Mac
Avis sur Java Shilber
Exécutez PostgreSQL sur Java
java --Unification des commentaires
Histoire des annotations Java
java (mérites du polymorphisme)
Examen NIO de Java
Correspondance lorsque l'application Java transformée en exe avec launch4j ne fonctionne pas sur les fenêtres où openJDK est installé
[Java] Trois fonctionnalités de Java
Résumé du support Java 2018
Histoire de créer une application de gestion de tâches avec Swing, Java
20190803_Java & k8s sur Azure L'histoire d'aller au festival
Utiliser Java Web Start dans un environnement OpenJDK sous Windows
Utilisation de plusieurs versions de Java avec Brew sur Mac + jEnv
À propos de l'exécution régulière de la tâche de râteau de l'application de rails dans Heroku
[Java] Différence entre l'erreur de débordement de pile et l'erreur de mémoire insuffisante