CommencezCommencez gratuitement

Suivre l'utilisation de la mémoire

Vous travaillez sur une application de traitement de données qui manipule de grandes collections d'objets. Mettez en place un utilitaire de suivi de la mémoire pour surveiller la consommation pendant les opérations critiques et éviter les exceptions OutOfMemoryError.

Cette activité fait partie du cours

Optimiser le code en Java

Voir le cours

Instructions de l’exercice

  • Récupérez l'instance actuelle du runtime de la JVM.
  • À l'aide 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 obtenir la mémoire utilisée en mégaoctets.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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