2009-07-21 16 views

Respuesta

81

Desde la salida de java -X:

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

Documentados here:

-Xloggc: nombre

Establece el archivo en el que la información de eventos detallados GC debe ser redirigido 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

lo que la salida se ve algo como esto:

 
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

muchas gracias por la gran respuesta – djangofan

+0

java --Xloggc: firstgen.log -Xloggc: secondgen.log parece que no funciona por cierto. – djangofan

+0

Además, esto no aumenta la salida, como esperaba. No hay detalles adicionales después de usar estos argumentos: -Xloggc: gc.log -XX: -PrintGCDetails – djangofan

34

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

En un Sun JVM:

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

en una IBM JVM:

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

Si usa -Xloggc, no necesita -verbose: gc. – tfb785

6

Para añadir a las respuestas anteriores, hay un buen artículo: Useful JVM Flags – Part 8 (GC Logging) por Patrick Peschlow.

Una breve extracto:

La bandera -XX:+PrintGC (o el alias -verbose:gc) activa el modo de registro de “simple” GC

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

Si utilizamos -XX:+PrintGCDetails en lugar de -XX:+PrintGC, que active el modo de registro de GC “detallada” que varía en función del algoritmo utilizado GC.

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

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

1

Java JVM 9 & Unificado registro

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

-Xlog 

Por ejemplo, la siguiente opción:

-Xlog:gc 

registrará mensajes etiquetados con gc etiqueta usando info nivel a stdout. O esta otra:

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

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

Cuestiones relacionadas