CommencerCommencer gratuitement

Suivi de l’utilisation de la mémoire

Vous travaillez sur une application de traitement de données qui manipule de grandes collections d’objets. Implémentez un utilitaire de surveillance de la mémoire afin de suivre la consommation pendant les opérations critiques et d’éviter les exceptions OutOfMemoryError.

Cet exercice fait partie du cours

Optimiser son code en Java

Afficher le cours

Instructions

  • Récupérez l’instance courante du runtime de la JVM.
  • À partir de la mémoire totale et de la mémoire libre du runtime, calculez la mémoire actuellement utilisée.
  • Appelez la méthode pour récupérer la mémoire utilisée en mégaoctets.

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

public class Main {
    public static double getUsedMemoryMB() {
        // Retrieve the JVM runtime instance
        Runtime runtime = ____.____()
        // Calculate the current used memory
        long usedMemoryBytes = runtime.____() - runtime.____();
        return usedMemoryBytes / (1024.0 * 1024.0);
    }
    
    public static void main(String[] args) {
        double memoryBefore = getUsedMemoryMB();
        System.out.println("Memory before array creation: " + memoryBefore + " MB");
        
        int size = 10_000_000;
        double[] largeArray = new double[size];
        for (int i = 0; i < size; i++) {
            largeArray[i] = Math.sqrt(i);
        }
        
        // Get the currently used memory in megabytes
        double memoryAfter = ____();
        System.out.println("Memory after array creation: " + memoryAfter + " MB");
        System.out.println("Memory used by array creation: " + (memoryAfter - memoryBefore) + " MB");
    }
}
Modifier et exécuter le code