Java GC 100만번 테스트 해보기. ㅎㅎ 심심 ㅡ.ㅡ;
2007. 7. 24. 10:59ㆍJava
Java의 GC란 가비지 컬렉터 말그대로,
할당은 맘대로,
만약 사용되지 않는 메모리는 알아서 해제한다는 거죠.
생각이 나서 1/1000 초 마다 100kb 를 할당하는 프로그램을 돌리고 GC의 상태를 지켜봤습니다.
100만번 루프를 돌려봤습니다
[Test Source]
package test;
import java.nio.ByteBuffer;
public class GCTest {
public static void main(String[] args) throws InterruptedException {
for(int i=0;i<1000000;i++) {
ByteBuffer buf = ByteBuffer.allocate(100*1024);
long used = Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory();
String s = "테스트"+i+", 메모리사용량="+used;
System.out.println(s);
Thread.sleep(1);
// System.gc();
}
}
}
Object가 쌓이지 않습니다.
또한, 700kb를 못벗어나고 GC가 일어나네요.
멋집니다. ^^
GC를 믿고 프로그래밍들 하세요.~
다음에는 스레드를 한번 돌려 봐야겠네요.
32만번째 화면~
100만번째 화면.
by ncanis(조성준)
할당은 맘대로,
만약 사용되지 않는 메모리는 알아서 해제한다는 거죠.
생각이 나서 1/1000 초 마다 100kb 를 할당하는 프로그램을 돌리고 GC의 상태를 지켜봤습니다.
100만번 루프를 돌려봤습니다
[Test Source]
package test;
import java.nio.ByteBuffer;
public class GCTest {
public static void main(String[] args) throws InterruptedException {
for(int i=0;i<1000000;i++) {
ByteBuffer buf = ByteBuffer.allocate(100*1024);
long used = Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory();
String s = "테스트"+i+", 메모리사용량="+used;
System.out.println(s);
Thread.sleep(1);
// System.gc();
}
}
}
Object가 쌓이지 않습니다.
또한, 700kb를 못벗어나고 GC가 일어나네요.
멋집니다. ^^
GC를 믿고 프로그래밍들 하세요.~
다음에는 스레드를 한번 돌려 봐야겠네요.
32만번째 화면~
100만번째 화면.
by ncanis(조성준)