Ich versuche, einen java.lang.OutOfMemoryError: PermGen Space
Fehler zu diagnostizieren, wenn Sie auf der Sun Hotspot JVM läuft, und würde gerne wissen, wie viel mein Programm PermGen Raum an verschiedenen Stellen verwendet. Gibt es eine Möglichkeit, diese Informationen programmatisch herauszufinden?Wie programmiere ich programmatisch meine PermGen-Speicherplatznutzung?
25
A
Antwort
38
Sie können so etwas wie folgt verwenden:
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();
}
Dies gibt Ihnen alle Arten von Speicher. Sie interessieren sich für "Perm Gen" Typ.
3
Danke, das funktioniert. Ich nehme den MemoryPoolMXBean wo Name.equalsIgnoreCase ("Perm Gen"). –
Benötigte Informationen, Danke kgiannakakis. – vissu