Aan de slagGa gratis aan de slag

Geheugenverbruik bijhouden

Je werkt aan een dataverwerkingsapplicatie die met grote collecties objecten werkt. Implementeer een hulpmiddel voor geheugemonitoring dat het geheugenverbruik tijdens kritieke operaties bijhoudt om OutOfMemoryError-exceptions te voorkomen.

Deze oefening maakt deel uit van de cursus

Code optimaliseren in Java

Cursus bekijken

Oefeninstructies

  • Haal de huidige JVM-runtime-instantie op.
  • Bereken het huidige gebruikte geheugen met de totale runtime-geheugenwaarde en de vrije geheugenwaarde.
  • Roep de methode aan om het gebruikte geheugen in megabytes op te halen.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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");
    }
}
Code bewerken en uitvoeren