Comment est-ce que je redirige la sortie détaillée de la récupération de la mémoire vers un fichier? Le site Web de Sun montre un exemple pour Unix, mais il ne fonctionne pas pour Windows.
De la sortie de java -X
:
-Xloggc:état du journal du journal dans un fichier avec horodatages
Documenté ici :
-Xloggc: nom de fichier
Définit le fichier vers lequel les informations détaillées sur les événements GC doivent être redirigées pour la journalisation. Les informations écrites dans ce fichier sont similaires à celles de
-verbose:gc
avec le temps écoulé depuis le premier événement GC précédant chaque événement enregistré. L’option-Xloggc
remplace-verbose:gc
si les deux sont donnés avec la même commandejava
.Exemple:
-Xloggc: garbage-collection.log
La sortie ressemble donc à 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 sec] 1,459: [GC 1902K-> 1055 K (5056 K), 0,0030196 s] 1.600: [GC 1951K-> 1161K (5056K), 0.0032375 secs] 1,686: [GC 1805K-> 1238K (5056K), 0.0034732 s] 1.690: [Full GC 1238K-> 1238K (5056K), 0.0631661 secs] 1,874: [GC 62133K-> 61257K (65060K), 0.0014464 secs]
Si, en outre, vous souhaitez canaliser la sortie vers un fichier distinct, vous pouvez effectuer les opérations suivantes:
Sur une machine virtuelle Java:
-Xloggc:C:\whereever\jvm.log -verbose:gc -XX:+PrintGCDateStamps
ON une JVM IBM:
-Xverbosegclog:C:\whereever\jvm.log
Pour append aux réponses ci-dessus, il y a un bon article: Drapeaux JVM utiles – Partie 8 (GC Logging) de Pasortingck Peschlow.
Un bref extrait:
Le drapeau -XX:+PrintGC
(ou l’alias -verbose:gc
) active le mode de journalisation GC «simple»
Par défaut, le journal GC est écrit dans stdout. Avec -Xloggc:
nous pouvons au lieu de cela spécifier un fichier de sortie. Notez que cet indicateur définit implicitement -XX:+PrintGC
et -XX:+PrintGCTimeStamps
.
Si nous utilisons -XX:+PrintGCDetails
au lieu de -XX:+PrintGC
, nous -XX:+PrintGC
le mode d’enregistrement GC détaillé qui diffère selon l’algorithme GC utilisé.
Avec -XX:+PrintGCTimeStamps
un horodatage reflétant le temps réel passé en secondes depuis le début du démarrage de la machine -XX:+PrintGCTimeStamps
à chaque ligne.
Si nous -XX:+PrintGCDateStamps
chaque ligne commence par la date et l’heure absolues.
JEP 158 introduit un système de journalisation commun pour tous les composants de la machine virtuelle Java (JVM), qui changera (et simplifiera l’OMI) de la manière dont la journalisation fonctionne avec GC. JEP 158 a ajouté une nouvelle option de ligne de commande pour contrôler la journalisation de tous les composants de la machine virtuelle Java:
-Xlog
Par exemple, l’option suivante:
-Xlog:gc
enregistrera les messages marqués avec la balise gc
utilisant le niveau d’ info
à stdout
. Ou celui-ci:
-Xlog:gc=debug:file=gc.txt:none
consignerait les messages marqués avec la balise gc
utilisant le niveau de debug
dans un fichier appelé gc.txt
sans décorations. Pour plus de détails, vous pouvez consulter les exemples de la page JEP .