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