forzar example español como collector java garbage-collection

español - garbage collector java example



¿La entrada de registro de recolección de basura java "Full GC(Sistema)" significa alguna clase llamada System.gc()? (2)

De la fuente para OpenJDK diría que es

const bool is_system_gc = gc_cause == GCCause::_java_lang_system_gc; // This is useful for debugging but don''t change the output the // the customer sees. const char* gc_cause_str = "Full GC"; if (is_system_gc && PrintGCDetails) { gc_cause_str = "Full GC (System)"; }

Creé una versión personalizada de la clase Runtime para registrar el nombre del hilo y el seguimiento de la pila en un archivo siempre que se llamaba Runtime.getRuntime () .gc (). (System.gc () lo llama) Lo encontré útil para rastrear y eliminar a las personas que llaman.

Un lugar donde esto sucede es en la clase sun.misc.GC. El RMI le pedirá a esta clase que se asegure de que un GC ha estado funcionando en los últimos N segundos. Si no ha habido GC, se dispara un GC completo.

Esto solo se muestra como un problema si reduce el número de GC de menor importancia. Irónicamente puede significar que obtienes más GC completos. ;)

No uso RMI (excepto quizás JConsole) Así que lo tengo configurado en una semana. (Piense que el valor predeterminado es una hora)

-Dsun.rmi.dgc.server.gcInterval=604800000 -Dsun.rmi.dgc.client.gcInterval=604800000

¿Qué significa la entrada "Full GC (System)" en los registros de recolección de basura? ¿Que alguna clase llamada System.gc ()?

¿Mis registros de recolección de basura tienen dos tipos de entrada diferentes para ''gc completo''? Uno con la palabra ''Sistema'', el otro sin. ¿Cual es la diferencia?

(Actualización: busqué en este término y no encontré una respuesta definitiva, solo unas pocas preguntas. Así que pensé en publicarlo).

Sistema:

164638.058: [Full GC (System) [PSYoungGen: 22789K-> 0K (992448K)] [PSOldGen: 1645508K-> 1666990K (2097152K)] 1668298K- cp. segs] [Tiempos: usuario = 5.69 sys = 0.06, real = 5.75 segs]

No-sistema:

166687.013: [Full GC [PSYoungGen: 126501K-> 0K (922048K)] [PSOldGen: 2063794K-> 1598637K (2097152K)] 2190295K-personas de los paneles de las embarcaciones de las personas de la piscina. Tiempos: usuario = 6.80 sys = 0.02, real = 6.81 segs]

Opciones de GC

Nuestras opciones de memoria Java relacionadas con gc son: -Xloggc: ../ server / pe / log / jvm_gc.log -XX: + PrintGCTimeStamps -XX: + PrintGCDetails

No ''-XX: + DisableExplicitGC'', por lo que es posible que alguna clase errante llame a System.gc ()

fwiw, nuestras opciones jvm completas:

-Xms3072m -Xmx3072m -XX: + HeapDumpOnOOOutOfMemoryError -XX: -UseGCOverheadLimit -Xloggc: ../ server / pe / log / jvm_gc.log -XX: Estado de la empresa: Pincel:

gracias por adelantado,

será


Prueba el GC explícito en mi mac, muestra "Full GC (System)" cuando uso jdk 1.6, pero muestra "Full GC" con jdk 1.7

Por lo tanto, no confíe en la etiqueta "Sistema" cuando ajuste el registro del GC a menos que sepa exactamente sobre el entorno de ejecución y el número de versión de jdk