Garbage Collection

이번 Posting 에서는 GC에 대하여 정리를 할 것이다.

일반적으로 GC 실행될 때, stop-the-world라는 것을 실행한다. 이 것은 GC를 실행하는 스레드를 제외한 나머지 스레드는 모두 작업을 멈추는 작업이다. 이 것으로 인해 성능의 저하가 발생할 수 있기 때문에 GC 튜닝을 하는 것이다.

Oracle HotSpot VM에서는 크게 2개의 물리적 공간을 나누었다. Young과 Old 영역이 그 공간이다.

  • young 영역: 대부분의 새롭게 생성된 객체들이 위치하는 공간이다. 대부분의 객체가 금방 unreachable 상태가 되기 때문에 여기서 생성되었다가 사라진다. 이 영역에서 GC에 의해 사라지는 것은 Minor GC가 발생했다고 말한다.
  • Old 영역: 계속해서 reachable 상태로 young 영역에서 살아남은 객체는 이 영역으로 복사된다. Old 영역이기 GC는 적게 발생한다. 여기서 발생하는 GC는 Major GC라고 말한다. 
Old 영역에서 young 영역의 객체를 참조하고 있다면? card table이라는 것이 존재하여 card를 확인하여 GC 대상을 식별한다.

이 블로그의 인기 게시물

웹툰 무료로 볼 수 있는 사이트

BackJoon 1011, Fly me to the alpha centauri, 규칙 찾기 문제

BaekJoon 6591, 이항 쇼다운 조합문제