Monday, November 20, 2006
Java/자바] 총 메모리, 남은 메모리 보기, 자바 가상머신 totalMemory, freeMemory
public long totalMemory() 메소드는 자바 가상 머신(JVM)의 모든 메모리 양을 바이트 단위로 반환합니다.
public long freeMemory() 는 자바 가상머신 내의 남은 메모리의 양을 바이트 단위로 반환합니다.
public long maxMemory() 는, 가상머신이 사용하려고 시도했던 가장 큰 메모리 양입니다.
다음 예제에서는 테스트를 위해, 64비트 실수인 double 의 배열을 2백만 개 만들었습니다.
파일명: Foo.java
예제를 모두 3번 실행했는데
1번째 실행 때는 소스 파일에서, n1 과 n2 배열을 주석화하여 없앴고
2번째 실행 때는 소스 파일에서, n1 배열만 선언했고
3번째 실행 때는 소스 파일에서, n1 과 n2 배열을 모두 선언했습니다.
public long freeMemory() 는 자바 가상머신 내의 남은 메모리의 양을 바이트 단위로 반환합니다.
public long maxMemory() 는, 가상머신이 사용하려고 시도했던 가장 큰 메모리 양입니다.
다음 예제에서는 테스트를 위해, 64비트 실수인 double 의 배열을 2백만 개 만들었습니다.
totalMemory, freeMemory: 자바 메모리 총 용량, 남은 용량 보기 예제
파일명: Foo.java
public class Foo {
public static void main (String[] args) {
double[] n1 = new double[1000000];
double[] n2 = new double[1000000];
long free = Runtime.getRuntime().freeMemory();
long total = Runtime.getRuntime().totalMemory();
long max = Runtime.getRuntime().maxMemory();
System.out.format("Total Memory : %6.2f MB%n", (double) total / (1024 * 1024));
System.out.format("Free Memory : %6.2f MB%n", (double) free / (1024 * 1024));
System.out.format("Max Memory : %6.2f MB%n", (double) max / (1024 * 1024));
}
}
public static void main (String[] args) {
double[] n1 = new double[1000000];
double[] n2 = new double[1000000];
long free = Runtime.getRuntime().freeMemory();
long total = Runtime.getRuntime().totalMemory();
long max = Runtime.getRuntime().maxMemory();
System.out.format("Total Memory : %6.2f MB%n", (double) total / (1024 * 1024));
System.out.format("Free Memory : %6.2f MB%n", (double) free / (1024 * 1024));
System.out.format("Max Memory : %6.2f MB%n", (double) max / (1024 * 1024));
}
}
예제를 모두 3번 실행했는데
1번째 실행 때는 소스 파일에서, n1 과 n2 배열을 주석화하여 없앴고
2번째 실행 때는 소스 파일에서, n1 배열만 선언했고
3번째 실행 때는 소스 파일에서, n1 과 n2 배열을 모두 선언했습니다.
D:\Z>javac Foo.java && java Foo
Total Memory : 1.94 MB
Free Memory : 1.76 MB
Max Memory : 63.56 MB
D:\Z>javac Foo.java && java Foo
Total Memory : 9.57 MB
Free Memory : 1.80 MB
Max Memory : 63.56 MB
D:\Z>javac Foo.java && java Foo
Total Memory : 21.63 MB
Free Memory : 6.22 MB
Max Memory : 63.56 MB
D:\Z>
Total Memory : 1.94 MB
Free Memory : 1.76 MB
Max Memory : 63.56 MB
D:\Z>javac Foo.java && java Foo
Total Memory : 9.57 MB
Free Memory : 1.80 MB
Max Memory : 63.56 MB
D:\Z>javac Foo.java && java Foo
Total Memory : 21.63 MB
Free Memory : 6.22 MB
Max Memory : 63.56 MB
D:\Z>
tag: java
자바 | Java
<< Home