본문 바로가기

Programming/JAVA

메모리 사용량 확인

메모리 사용량 확인

Runtime의 maxMemory, totalMemory, freeMemory 메소드를 이용하면 현재 애플리케이션이 사용하고 있는 메모리 상태를 확인 할 수 있습니다.

아래의 예제를 확인 하세요~

import java.text.DecimalFormat;

public class MonitorMemory {
       
        static Runtime r = Runtime.getRuntime();

        public static void main(String[] args) {
                showMemory();
        }
       
        public static void showMemory() {
                DecimalFormat format = new DecimalFormat("###,###,###.##");
               
                //JVM이 현재 시스템에 요구 가능한 최대 메모리량, 이 값을 넘으면 OutOfMemory 오류가 발생 합니다.                
                long max = r.maxMemory();
               
                //JVM이 현재 시스템에 얻어 쓴 메모리의 총량
                long total = r.totalMemory();
               
                //JVM이 현재 시스템에 청구하여 사용중인 최대 메모리(total)중에서 사용 가능한 메모리
                long free = r.freeMemory();
               
                System.out.println("Max:" + format.format(max) + ", Total:" + format.format(total) + ", Free:"+format.format(free));        
        }
}


실행시 아래처럼 JVM의 메모리 값을 서로 다른 양으로 요구 할 수 있습니다.
물론 이전의 강좌에도 있었지만 실행 시 OutOfMemory 오류 발생시에도 적절히 JVM의 메모리 요구량을 조절 하시면 됩니다.

[결과]

D:\Tomcat-Project\JavaApp>java -Xmx128m  MonitorMemory
Max:133,234,688, Total:2,031,616, Free:1,590,304

D:\Tomcat-Project\JavaApp>java -Xmx64m  MonitorMemory
Max:66,650,112, Total:2,031,616, Free:1,590,304

D:\Tomcat-Project\JavaApp>java -Xmx64m -Xms32m  MonitorMemory
Max:66,650,112, Total:33,357,824, Free:32,893,104