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
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");
}
}