9
votes

Java Garbage Collection Time?

J'ai une application très sensible à la performance en Java. (Je sais que je devrais réellement utiliser c ou autre chose. Mais c'est Java maintenant.) J'essaie d'éviter de créer et de jeter des objets. Maintenant, j'ai besoin de savoir combien de collecte de déchets se passe encore.

Comment puis-je savoir?

Si possible, j'aimerais avoir une sorte de nombre en millisecondes ou nanosecondes quelque chose qui ne nécessite pas d'installation de plus de logiciels.


4 Réponses :


2
votes

Vous pouvez utiliser Visualvm pour cela, c'est exactement ce dont vous avez besoin.
Comme vous pouvez le voir ci-dessous, vous avez une activité de GC très utile:

Entrez la description de l'image ici

Outre l'activité de GC, vous avez beaucoup de détails, il s'agit de: Utilisation du tas, utilisation de la CPU, utilisation des objets d'objet, etc.


0 commentaires

7
votes

Vous pouvez utiliser des outils tels que VisualvM pour surveiller l'activité de l'application. Assurez-vous d'utiliser des alogorithmes de GC appropriés.

Oracle JVM fournit plusieurs types de capteurs de déchets:

  • Le collecteur de débits
  • le collecteur de pause faible simultané
  • Le collecteur incrémental (parfois appelé Train) PAUSE PAUSE:

    En savoir plus sur ces collectionneurs ici .


2 commentaires

+1 Remarque: Pour les programmes de GC faible, VisualvM créera plus de déchets que votre application. Pour cela, j'utilise Yourkit, ce qui n'est pas gratuit. Je commencerais avec Visualvm.


Il existe également un plugin pour Visualvm appelé VisualGC qui montre ce qui se passe pour chaque espace de tas en temps réel. blogs.oracle.com/klc/entry/visualgc_plugin_for_visualvm



1
votes

JProfiler , qui permet à la fois de profil de mémoire d'évaluer l'utilisation de la mémoire et Fuite d'allocation dynamique et profilage de la CPU pour évaluer les conflits de fil.


0 commentaires

8
votes

ou vous pouvez laisser imprimer JVM l'activité GC .. Ces paramètres que j'ai:

-verbose:gc -XX:+PrintGCTimeStamps -XX:+PrintGCDetails -XX:+PrintTenuringDistribution -Xloggc:logs/gc.log


0 commentaires