我试图诊断在Sun的Hotspot JVM上运行时出现的java.lang.OutOfMemoryError: PermGen Space
错误,并想知道我的程序在不同点使用了多少PermGen空间。是否有一种以编程方式找到此信息的方法?
我试图诊断在Sun的Hotspot JVM上运行时出现的java.lang.OutOfMemoryError: PermGen Space
错误,并想知道我的程序在不同点使用了多少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();
}
这将给你所有类型的内存。你感兴趣的是“Perm Gen”类型。