Frage

Ich versuche, ein java.lang.OutOfMemoryError: PermGen Space Fehler zu diagnostizieren, wenn Sie auf der Sun Hotspot JVM ausgeführt wird, und würde gerne wissen, wie viel PermGen Raum mein Programm an verschiedenen Stellen verwendet wird. Gibt es eine Möglichkeit programmatisch diese Informationen herauszufinden?

War es hilfreich?

Lösung

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 wird Ihnen alle Arten von Speicher. Sie sind in "Perm Gen" Art interessiert.

Andere Tipps

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top