Zacznij terazZacznij za darmo

Śledzenie użycia pamięci

Pracujesz nad aplikacją do przetwarzania danych, która operuje na dużych kolekcjach obiektów. Zaimplementuj narzędzie do monitorowania pamięci, które pomoże śledzić jej zużycie podczas krytycznych operacji i zapobiegnie wyjątkom OutOfMemoryError.

To ćwiczenie jest częścią kursu

Optymalizacja kodu w Javie

Zobacz kurs

Instrukcje do ćwiczenia

  • Pobierz bieżącą instancję środowiska uruchomieniowego JVM.
  • Korzystając z całkowitej pamięci i wolnej pamięci środowiska uruchomieniowego, oblicz aktualnie używaną pamięć.
  • Wywołaj metodę pobierającą używaną pamięć w megabajtach.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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");
    }
}
Edytuj i uruchom kod