Kom igångKom igång gratis

Spåra minnesanvändning

Du arbetar med en databehandlingsapplikation som hanterar stora samlingar av objekt. Implementera ett verktyg för minnesövervakning som hjälper till att spåra minnesförbrukningen under kritiska operationer och förhindra OutOfMemoryError-undantag.

Den här övningen är en del av kursen

Optimera kod i Java

Visa kurs

Övningsinstruktioner

  • Hämta den aktuella JVM-runtime-instansen.
  • Beräkna det använda minnet med hjälp av runtimens totala minne och lediga minne.
  • Anropa metoden för att hämta det använda minnet i megabyte.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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");
    }
}
Redigera och kör kod