Java GC 100만번 테스트 해보기. ㅎㅎ 심심 ㅡ.ㅡ;

2007. 7. 24. 10:59Java

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(조성준)