Как программно узнать использование пространства PermGen?

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

Вопрос

Я пытаюсь поставить диагноз java.lang.OutOfMemoryError: PermGen Space Ошибка при работе на JVM Sun Hotspot, и я хотел бы знать, сколько пространства PermGen использует моя программа в различных точках.Есть ли способ узнать эту информацию программно?

Это было полезно?

Решение

Вы можете использовать что-то вроде этого:

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

Это даст вам все типы памяти.Вас интересует тип «Пермь Ген».

Другие советы

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top