Question

Je suis en train de diagnostiquer une erreur de java.lang.OutOfMemoryError: PermGen Space lors de l'exécution sur Hotspot JVM de Sun, et je voudrais savoir combien d'espace mon programme PermGen utilise à différents points. Est-il possible de trouver cette information par programme?

Était-ce utile?

La solution

Vous pouvez utiliser quelque chose comme ceci:

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();
}

Cela vous donnera tous les types de mémoire. Vous êtes intéressé par le type "Perm Gen".

Autres conseils

ManagementFactory.getMemoryPoolMXBeans().

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top