Pregunta

Estoy tratando de diagnosticar un error de java.lang.OutOfMemoryError: PermGen Space cuando se ejecuta en la JVM de Sun hotspot, y me gustaría saber cuánto espacio PermGen mi programa está utilizando en varios puntos. ¿Hay una manera de descubrir esta información mediante programación?

¿Fue útil?

Solución

Puede usar algo como esto:

Iterator<MemoryPoolMXBean> iter = ManagementFactory.getMemoryPoolMXBeans().iterator();
while (iter.hasNext())
{
    MemoryPoolMXBean item = iter.next();
    String name = item.getName();
    MemoryType type = item.getType();
    MemoryUsage usage = item.getUsage();
    MemoryUsage peak = item.getPeakUsage();
    MemoryUsage collections = item.getCollectionUsage();
}

Esto le dará a todos los tipos de memoria. Usted está interesado en el tipo "Perm Gen".

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