[JAVA] Comment utiliser GC Viewer

J'ai utilisé GC Viewer pour vérifier le journal GC de JVM après un long moment, donc je vais laisser une note.

environnement

Télécharger

Cliquez sur le lien pour la dernière version de «télécharger | télécharger la version mac» sur la page suivante pour télécharger. https://github.com/chewiebug/GCViewer/wiki/Changelog

Dans le cas de Windows, le fichier jar sera téléchargé, alors placez-le dans n'importe quel dossier.

Commencez

  1. Double-cliquez sur le jar gcviewer
    021.PNG
    → L'écran suivant s'affiche 002.png
  2. Faites glisser et déposez le fichier texte du journal GC dans la fenêtre
    → L'écran suivant apparaîtra 020.png

Changer l'affichage

  1. Cochez Menu> Affichage> Panneau de données
    → Le panneau de données à droite disparaît et s'élargit 004.png
  2. Cliquez avec le bouton droit autour de la colonne d'heure> Vérifier l'heure de début du journal
    → La colonne d'heure est affichée sous forme d'heure (lorsque le journal du CPG contient un horodatage) 005.png
  3. Vérifier le tas total
    → La taille totale du tas est affichée en rouge
    Ici, -Xms (taille de départ) et -Xmx (taille maximale) sont définis sur la même valeur, donc la taille totale du tas est en ligne droite. 006.png
  4. Désactivez Total Heap et cochez la case Tenured Generation, Young Generation
    → La taille de la génération Jeune est affichée en jaune et la taille de la génération Titulaire (Ancienne génération) est affichée en violet. Généralement jeune génération + génération permanente = tas total 007.png
  5. Vérifiez le tas utilisé, le tas jeune utilisé
    → L'utilisation du tas dans chaque génération peut être considérée comme une ligne. La ligne verticale indique que la mémoire a été libérée par le GC. 008.png
  6. Ajustez le rapport dans la boîte de sélection en haut de sorte que le début / la fin du journal GC tienne dans toute la fenêtre (★ important).
    Si vous ne le faites pas, vous pouvez penser qu'il n'y a pas de problème à ne vérifier qu'une partie de la plage. Cette fois, j'ai ajusté le ratio à ce moment, mais il vaut mieux commencer l'enquête après avoir permis de voir l'ensemble le plus tôt possible.
    Ce que vous pouvez voir sur le graphique
  1. Vérifier le tas utilisé
    → Jusqu'à présent, la jeune génération et la génération avec permanence étaient affichées séparément, mais maintenant le total de la jeune génération et de la génération avec permanence (= utilisation du tas) peut être vu en bleu. 010.png
  2. Vérifier les lignes GC complètes
    → Le GC complet devient visible comme une ligne noire 011.png

Vérifier le point de vue

  1. L'utilisation du tas de la jeune génération a-t-elle chuté au fond après Young GC?
  2. L'utilisation du segment de mémoire de la génération Tenured a-t-elle chuté au bas après Full GC?

En fait, je ne sais pas vraiment comment évaluer les journaux GC. Dans ce graphique, le nombre de générations titulaires augmente, mais devrait-il être publié au bas du prochain GC complet?

Recommended Posts

Comment utiliser GC Viewer
Comment utiliser Map
Comment utiliser rbenv
Comment utiliser fields_for
Comment utiliser java.util.logging
Comment utiliser la carte
Comment utiliser collection_select
Comment utiliser Twitter4J
Comment utiliser active_hash! !!
Comment utiliser MapStruct
Comment utiliser TreeSet
[Comment utiliser l'étiquette]
Comment utiliser l'identité
Comment utiliser le hachage
Comment utiliser Dozer.mapper
Comment utiliser Gradle
Comment utiliser org.immutables
Comment utiliser java.util.stream.Collector
Comment utiliser VisualVM
Comment utiliser Map
Comment utiliser l'API Chain
[Java] Comment utiliser Map
Comment utiliser Queue avec priorité
[Rails] Comment utiliser enum
Comment utiliser JUnit (débutant)
Comment utiliser le retour Ruby
[Rails] Comment utiliser enum
Comment utiliser @Builder (Lombok)
Comment utiliser la classe Java
Comment utiliser Big Decimal
[Java] Comment utiliser removeAll ()
Comment utiliser String [] args
Comment utiliser la jonction de rails
Comment utiliser Java Map
Ruby: Comment utiliser les cookies
Comment utiliser Dependant :: Destroy
Comment utiliser Apache POI
[Rails] Comment utiliser la validation
Comment utiliser les variables Java
[Rails] Comment utiliser authenticate_user!
Comment utiliser Lombok maintenant
[Création] Comment utiliser JUnit
[Rails] Comment utiliser Scope
Comment lire la gestion de la mémoire Java et GC Viewer
[Rails] Comment utiliser la "devise" des gemmes
Comment utiliser Lombok au printemps
Comment utiliser StringBurrer et Arrays.toString.
Comment utiliser le tableau (mémorandum personnel)
Comment utiliser HttpClient de Java (Get)
Comment utiliser scope (JSP & Servlet)
[Rails] Comment utiliser l'appareil (Remarque)
Comment utiliser la méthode form_with