Pergunta

Eu estou tentando diagnosticar um erro java.lang.OutOfMemoryError: PermGen Space quando executado no Hotspot JVM da Sun, e gostaria de saber quanto espaço PermGen meu programa está usando em vários pontos. Existe uma maneira de descobrir esta informação de programação?

Foi útil?

Solução

Você pode usar algo como isto:

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();
}

Isto lhe dará todos os tipos de memória. Você está interessado no tipo "Perm Gen".

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top