que collector activar garbage-collection java jdk1.5

garbage collection - collector - ¿Cómo redirigir la salida de recolección de basura detallado a un archivo?



activar garbage collector (4)

¿Cómo puedo redirigir la salida de recolección de basura detallado a un archivo? El sitio web de Sun muestra un ejemplo para Unix pero no funciona para Windows.


Java 9 y registro JVM unificado

JEP 158 introduce un sistema de registro común para todos los componentes de la JVM que cambiará (y simplificará la IMO) cómo funciona el registro con GC. JEP 158 agregó una nueva opción de línea de comando para controlar el registro de todos los componentes de la JVM:

-Xlog

Por ejemplo, la siguiente opción:

-Xlog:gc

registrará los mensajes etiquetados con etiqueta gc usando el nivel de info para stdout . O este:

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

registraría los mensajes etiquetados con la etiqueta gc usando el nivel de debug en un archivo llamado gc.txt sin decoraciones. Para una discusión más detallada, puede consultar los ejemplos en la página JEP .


Para agregar a las respuestas anteriores, hay un buen artículo: Banderas JVM útiles: Parte 8 (Registro GC) por Patrick Peschlow.

Un breve extracto:

El indicador -XX:+PrintGC (o el alias -verbose:gc ) activa el modo de registro GC "simple"

Por defecto, el registro del GC se escribe en stdout. Con -Xloggc:<file> podemos especificar un archivo de salida. Tenga en cuenta que este indicador establece implícitamente -XX:+PrintGC y -XX:+PrintGCTimeStamps también.

Si usamos -XX:+PrintGCDetails lugar de -XX:+PrintGC , activamos el modo de registro "detallado" de GC que difiere según el algoritmo de GC utilizado.

Con -XX:+PrintGCTimeStamps una marca de tiempo que refleja el tiempo real transcurrido en segundos desde que se agrega el inicio de JVM a cada línea.

Si especificamos -XX:+PrintGCDateStamps cada línea comienza con la fecha y hora absolutas.


Si además desea canalizar la salida a un archivo separado, puede hacer:

En una JVM Sun:

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

EN UNA IBM JVM:

-Xverbosegclog:C:/whereever/jvm.log


De la salida de java -X :

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

Documentado here :

-Xloggc: nombre de archivo

Establece el archivo al que se debe redirigir la información detallada de eventos del GC para el registro. La información escrita en este archivo es similar a la salida de -verbose:gc con el tiempo transcurrido desde el primer evento del GC que precede a cada evento registrado. La opción -Xloggc anula -verbose:gc si ambas se dan con el mismo comando java .

Ejemplo:

-Xloggc:garbage-collection.log

Entonces el resultado se ve así:

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]