【发布时间】:2010-10-16 09:20:21
【问题描述】:
我正在尝试在 Sun 的 Hotspot JVM 上运行时诊断 java.lang.OutOfMemoryError: PermGen Space 错误,并且想知道我的程序在各个点使用了多少 PermGen 空间。有没有办法以编程方式找出这些信息?
【问题讨论】:
标签: java memory-leaks jvm-hotspot permgen
我正在尝试在 Sun 的 Hotspot JVM 上运行时诊断 java.lang.OutOfMemoryError: PermGen Space 错误,并且想知道我的程序在各个点使用了多少 PermGen 空间。有没有办法以编程方式找出这些信息?
【问题讨论】:
标签: java memory-leaks jvm-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();
}
这将为您提供所有类型的内存。您对“Perm Gen”类型感兴趣。
【讨论】: