开始使用免费开始使用

跟踪内存使用情况

您正在开发一个处理大量对象集合的数据处理应用。请实现一个内存监控工具,用于在关键操作期间跟踪内存消耗,防止出现 OutOfMemoryError 异常。

本练习是课程的一部分

Java 代码优化

查看课程

练习说明

  • 获取当前 JVM 的运行时实例。
  • 使用运行时的总内存与空闲内存计算当前已用内存。
  • 调用方法以获取以 MB 为单位的已用内存。

交互式实操练习

通过完成这段示例代码来试试这个练习。

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");
    }
}
编辑并运行代码