시작하기무료로 시작하기

메모리 사용량 추적

대규모 객체 컬렉션을 다루는 데이터 처리 애플리케이션을 개발하고 있어요. 중요한 연산 중 메모리 소비를 추적해 OutOfMemoryError 예외를 예방할 수 있도록, 메모리 모니터링 유틸리티를 구현하세요.

이 연습은 강의의 일부입니다

Java 코드 최적화

강의 보기

연습 안내

  • 현재 JVM 런타임 인스턴스를 가져오세요.
  • 런타임의 총 메모리와 사용 가능한 메모리를 사용해 현재 사용 중인 메모리를 계산하세요.
  • 메가바이트 단위의 사용 메모리를 가져오는 메서드를 호출하세요.

실습형 인터랙티브 연습

이 예제를 이 샘플 코드를 완성하여 풀어보세요.

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");
    }
}
코드 편집 및 실행