เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การติดตามการใช้หน่วยความจำ

สมมติว่ากำลังพัฒนาแอปพลิเคชันประมวลผลข้อมูลที่จัดการกับ object จำนวนมาก ให้สร้าง utility สำหรับตรวจสอบหน่วยความจำ เพื่อติดตามการใช้งานหน่วยความจำระหว่างการทำงานที่สำคัญ และป้องกันข้อผิดพลาดประเภท OutOfMemoryError

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การปรับแต่งโค้ดใน Java

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ดึง JVM runtime instance ปัจจุบัน
  • ใช้ค่า total memory และ free memory ของ runtime เพื่อคำนวณหน่วยความจำที่กำลังใช้อยู่
  • เรียกเมธอดเพื่อดึงค่าหน่วยความจำที่ใช้อยู่ในหน่วยเมกะไบต์

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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");
    }
}
แก้ไขและรันโค้ด