2009-07-21 9 views

Répondre

81

De la sortie de java -X:

 
    -Xloggc:<file> log GC status to a file with time stamps 

Couverture documentée here:

-Xloggc: nom

Définit le fichier auquel des informations sur les événements prolixes devraient être réorientées pour la journalisation. Les informations écrites dans ce fichier sont similaires à la sortie de -verbose:gc avec le temps écoulé depuis le premier événement GC précédant chaque événement consigné. L'option -Xloggc remplace -verbose:gc si les deux sont donnés avec la même commande java.

Exemple:

 -Xloggc:garbage-collection.log

Ainsi, la sortie ressemble à quelque chose comme ceci:

 
0.590: [GC 896K->278K(5056K), 0.0096650 secs] 
0.906: [GC 1174K->774K(5056K), 0.0106856 secs] 
1.320: [GC 1670K->1009K(5056K), 0.0101132 secs] 
1.459: [GC 1902K->1055K(5056K), 0.0030196 secs] 
1.600: [GC 1951K->1161K(5056K), 0.0032375 secs] 
1.686: [GC 1805K->1238K(5056K), 0.0034732 secs] 
1.690: [Full GC 1238K->1238K(5056K), 0.0631661 secs] 
1.874: [GC 62133K->61257K(65060K), 0.0014464 secs] 
+1

merci beaucoup pour la bonne réponse – djangofan

+0

java --Xloggc: firstgen.log -Xloggc: secondgen.log ne semble pas fonctionner d'ailleurs. – djangofan

+0

En outre, cela n'augmente pas la sortie, comme je m'y attendais. Il n'y a pas de détails supplémentaires après avoir utilisé ces arguments: -Xloggc: gc.log -XX: -PrintGCDetails – djangofan

34

Si en plus vous voulez diriger la sortie vers un fichier séparé, vous pouvez le faire:

Sur un Sun JVM:

-Xloggc:C:\whereever\jvm.log -verbose:gc -XX:+PrintGCDateStamps 

ON une machine virtuelle Java IBM:

-Xverbosegclog:C:\whereever\jvm.log 
+4

Si vous utilisez -Xloggc, vous n'avez pas besoin de -verbose: gc. – tfb785

6

Pour ajouter aux réponses ci-dessus, il y a un bon article: Useful JVM Flags – Part 8 (GC Logging) par Patrick Peschlow.

Un bref extrait:

Le drapeau -XX:+PrintGC (ou l'alias -verbose:gc) active le mode d'enregistrement GC « simple »

Par défaut, le journal de GC est écrit sur la sortie standard. Avec -Xloggc:<file> nous pouvons spécifier un fichier de sortie. Notez que ce drapeau définit implicitement -XX:+PrintGC et -XX:+PrintGCTimeStamps.

Si nous utilisons -XX:+PrintGCDetails au lieu de -XX:+PrintGC, nous activons le mode d'enregistrement GC « détaillée » qui diffère en fonction de l'algorithme de GC utilisé.

Avec -XX:+PrintGCTimeStamps un horodatage reflétant le temps réel écoulé en secondes depuis que JVM start est ajouté à chaque ligne.

Si nous spécifions -XX:+PrintGCDateStamps chaque ligne commence par la date et l'heure absolues.

1

Java 9 & machine virtuelle Java unifiée Logging

JEP 158 introduit un système d'enregistrement commun pour tous les composants de la machine virtuelle Java qui va changer (et de l'OMI simplifier) ​​comment fonctionne l'exploitation forestière avec GC. JEP 158 a ajouté une nouvelle option de ligne de commande pour contrôler l'enregistrement de tous les composants de la machine virtuelle Java:

-Xlog 

Par exemple, l'option suivante:

-Xlog:gc 

consignera les messages marqués avec gc tag utilisant info niveau à stdout. Ou celui-ci:

-Xlog:gc=debug:file=gc.txt:none 

aurait log des messages marqués avec gc tag à l'aide d'un fichier appelé debug niveau gc.txt sans décorations. Pour une discussion plus détaillée, vous pouvez consulter les exemples dans la page JEP.

Questions connexes