Sun의 Hotspot JVM에서 실행할 때 java.lang.OutOfMemoryError: PermGen Space
오류를 진단하려고하는데 내 프로그램이 다양한 지점에서 얼마나 많은 PermGen 공간을 사용하고 있는지 알고 싶습니다. 프로그래밍 방식으로이 정보를 찾는 방법이 있습니까?프로그래밍 방식으로 PermGen 공간 사용법을 어떻게 찾을 수 있습니까?
25
A
답변
38
이 같은 것을 사용할 수 있습니다
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();
}
이 당신에게 메모리의 모든 유형을 제공 할 것입니다. "Perm Gen"유형에 관심이 있습니다.
3
감사합니다. 나는 MemoryPoolMXBean을 취하고 있는데, name.equalsIgnoreCase ("Perm Gen")입니다. –
필요한 정보, 감사합니다. – vissu