메모리 사용량 추적
대규모 객체 컬렉션을 다루는 데이터 처리 애플리케이션을 개발하고 있어요. 중요한 연산 중 메모리 소비를 추적해 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");
}
}