Comment puis-je trouver mon programme utilisation de l'espace PermGen?
-
22-08-2019 - |
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?
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".
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow