Cómo determinar el tamaño de PermGen dentro de una aplicación Java (es decir, mediante programación)?

StackOverflow https://stackoverflow.com/questions/4071440

Pregunta

  1. ¿Hay alguna manera de medir el momento, utiliza Tamaño de la generación permanente (PermGen) dentro de mi aplicación Java? No puedo usar herramientas de perfilado externos tales como VisualVM.

  2. Aún mejor sería una estimación del consumo de memoria de una clase Java en el PermGen. Es casi proporcional al tamaño del archivo de código de bytes?

¿Fue útil?

Solución

Se puede usar MemoryMXBean que viene con el JDK. Pero no creo que haya una manera de consulta sobre el uso PermGen desde dentro de una aplicación que se ejecuta. Docs sobre MemoryMXBean .

Otros consejos

Se puede usar jvisualvm herramienta de JDK con GC Visual plugin para supervisar todas las áreas de JVM heap incluyendo PermGen.

Si no estás en Windows, puede probar jmap que se incluye con el JDK.

Puede utilizar el comando jmap:

  

jmap [opción]       (Para conectar a un proceso en ejecución)

     

jmap [opción]       (Para conectar a un archivo central)

     

jmap [opción] [server_id @]       (Para conectarse al servidor de depuración remota)

donde es una de las opciones:

  

-heap: imprimir resumen montón de Java

     

-permstat: para imprimir las estadísticas de generación permanentes

El tamaño de PermGen no tiene nada que ver con el tamaño de los archivos de clase. El tamaño predeterminado de PermGen acuerdo con Sun es de 64 MB. Si se desea aumentar que se puede establecer de manera explícita usando:

-XX:PermSize=164m

en la línea de comandos Java o script de inicio. Este es también cómo se puede saber lo que está establecido en sin depender de una herramienta externa.

EDIT:

Lea este artículo para determinar aproximadamente la cantidad de PermGen actualmente se está utilizando programación (es decir, no hay herramientas externas):

http: //frankkieviet.blogspot. com / 2006/10 / PermGen-cómo-a-fix-temía-space.html

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top