Comment redirect la sortie de récupération de place verbeuse vers un fichier?

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 commande java .

    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.

    Journalisation Java 9 et unifiée JVM

    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 .