반응형

Stop the world

GC를 실행하기 위해 JVM이 어플리케이션 실행을 멈추는 것이다. stop-the-world가 발생하면 GC를 실행하는 쓰레드를 제외한 나머지 쓰레드는 모두 작업을 멈춘다. 그리고 GC작업을 완료한 이후에 작업을 다시 시작한다. 대개 GC튜닝이라 하면 stop-the-world시간을 줄이는 것이다.

즉, Stop the world란 GC가 더이상 필요 없는 객체를 찾아 지우는 작업을 하기위해 GC를 실행하는 쓰레드를 제외한 나머지 쓰레드가 멈추는 것을 의미한다.


Stop the world를 공부하면서 GC의 2가지 영역을 알게되었다. 이름과 마찬가지로 최근 생긴 객체는 Young, 오래된 객체는 Old영역에 위치하게 된다.


Young 영역(Yong Generation 영역)

 새롭게 생성한 객체의 대부분이 여기에 위치한다. 대부분의 객체가 금방 접근 불가능 상태가 되기 때문에 매우 많은 객체가 Young 영역에 생성되었다가 사라진다. 이 영역에서 객체가 사라질때 Minor GC가 발생한다고 말한다.


Old 영역(Old Generation 영역)

 접근 불가능 상태로 되지 않아 Young 영역에서 살아남은 객체가 여기로 복사된다. 대부분 Young 영역보다 크게 할당하며, 크기가 큰 만큼 Young 영역보다 GC는 적게 발생한다. 이 영역에서 객체가 사라질 때 Major GC(혹은 Full GC)가 발생한다고 말한다.


반응형

+ Recent posts