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!

Était-ce utile?

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
scroll top