Obtenir par programme les informations sur le tas en utilisant jmx avec java 5
Question
Je suis conscient de l’utilisation de jconsole pour s’attacher à un processus java afin d’obtenir des informations sur la mémoire. Plus précisément, je souhaite obtenir des informations sur les différents pools de mémoire par programme afin de pouvoir les associer à une application de surveillance.
Merci!
La solution
Merci, mattk - j'ai fini par faire ceci: -)
List memBeans = ManagementFactory.getMemoryPoolMXBeans();
for (Iterator i = memBeans.iterator(); i.hasNext(); ) {
MemoryPoolMXBean mpool = (MemoryPoolMXBean)i.next();
MemoryUsage usage = mpool.getUsage();
String name = mpool.getName();
float init = usage.getInit()/1000;
float used = usage.getUsed()/1000;
float committed = usage.getCommitted()/1000;
float max = usage.getMax()/1000;
float pctUsed = (used / max)*100;
float pctCommitted = (committed / max)*100;
}
Autres conseils
Découvrez java.lang .management.MemoryPoolMXBean et les classes associées.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow