Wie programmatisch finde ich meine Nutzung PermGen Raum aus?
-
22-08-2019 - |
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?
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
Versuchen Sie ManagementFactory.getMemoryPoolMXBeans()
.
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow