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 merupakan bagian dari kursus
Optimasi Kode di Java
Instruksi 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 langsung praktik
Cobalah latihan ini dengan melengkapi kode contoh ini.
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");
}
}