MulaiMulai sekarang secara gratis

Melacak penggunaan memori

Anda sedang mengerjakan aplikasi pemrosesan data yang memanipulasi koleksi objek berukuran besar. Implementasikan utilitas pemantau memori yang membantu melacak konsumsi memori selama operasi kritis untuk mencegah pengecualian OutOfMemoryError.

Latihan ini adalah bagian dari kursus

Optimasi Kode di Java

Lihat Kursus

Petunjuk latihan

  • Ambil instance runtime JVM saat ini.
  • Gunakan total memori runtime dan memori bebas untuk menghitung memori yang saat ini terpakai.
  • Panggil metode untuk mengambil memori yang terpakai dalam megabita.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

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");
    }
}
Edit dan Jalankan Kode