Obtenir le pic d'utilisation de la mémoire par la JVM

publié le

Quand on surveille l'utilisation de la mémoire d'une application Java il est souvent utile de connaitre le pic de consommation de mémoire par la JVM durant l'exécution.

Ce bout de code utilise un Managed bean de la JVM (comme expliqué dans un article précédent : surveillance de la mémoire utilisée par la JVM dans une application java). Pour obtenir le pic d'utilisation de la mémoire durant l'exécution, il faut parcourir chaque MemoryPoolMXBean et appeler la méthode getPeakUsage():

package com.inoneo;

import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryPoolMXBean;


public static void main(String[] args){

    // Place this code just before the end of the program
    try {
        String memoryUsage = new String();
        List pools = ManagementFactory.getMemoryPoolMXBeans();
        for (MemoryPoolMXBean pool : pools) {
            MemoryUsage peak = pool.getPeakUsage();
            memoryUsage += String.format("Peak %s memory used: %,d%n", pool.getName(),peak.getUsed());
            memoryUsage += String.format("Peak %s memory reserved: %,d%n", pool.getName(), peak.getCommitted());
        }

        // we print the result in the console
        System.out.println(memoryUsage);
 
   } catch (Throwable t) {
        System.err.println("Exception in agent: " + t);
   }

}
comments powered by Disqus