La JVM solar emite registros de GC detallados a StdOut cuando se utilizan los siguientes args.Registros detallados del GC de Java
-verbose:gc
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
Sin embargo, no quiero la salida en StdOut y realmente no necesito el detalle para cada GC. ¿Es posible acceder a los datos utilizados para estos registros de forma programática? Me gustaría poder registrar en mi propio archivo de registro la cantidad de memoria asignada/recopilada e idealmente el tamaño promedio del objeto a lo largo del tiempo.
Gracias a este. Esperaba que hubiera una API para poder acceder a estos datos en tiempo de ejecución y escribir estadísticas cada 5 minutos sobre el volumen de datos que se asignan, recopilan y promueven. – mchr
Mucha información sobre recolección de basura está disponible a través de JMX, abra 'jconsole' y revise los diferentes mbeans que expone una JVM. Hay varias preguntas aquí en SO con respecto a JMX y GC también. Si entiende alemán, este artículo y el código relacionado contienen algunas ideas interesantes http://www.torsten-horn.de/techdocs/jmx-gc.htm – fvu
A partir de JVM 1.6.0_34, puede hacer que Java gire los registros. '-XX: + UseGCLogFileRotation -XX: NumberOfGCLogFiles = -XX: GCLogFileSize = ' Tenga en cuenta que se requieren las tres opciones. otros consejos aquí: http://jyates.github.io/2012/11/05/rolling-java-gc-logs.html –