Как программно узнать использование пространства PermGen?
-
22-08-2019 - |
Вопрос
Я пытаюсь поставить диагноз 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();
}
Это даст вам все типы памяти.Вас интересует тип «Пермь Ген».
Другие советы
Пытаться ManagementFactory.getMemoryPoolMXBeans()
.
Не связан с StackOverflow