스킬(skills)/자바(Java)

Garbage Collector 개념

후바스탱크 2013. 7. 15. 17:33

JVM에서 사용하는 메모리 영역 중 힙(Heap) 메모리 영역은 크게 3가지로 나눌 수 있다.

영(young), 올드(old), 퍼머넌트(permanent)

이중 young 영역을 또 eden, survivor1, survivor2 로 나눌수가 있는데

자바에서 새로운 객체가 생성이 되면은 맨 처음 eden 부분에 생성이 된다.

eden 부분에서 GC가 발생하면 survivor1 으로 옮겨지고 survivor1에서 GC가 발생하면 survivor2 로 

옮겨지게 된다.

계속해서 young 영역에서 GC가 발생해도 살아남은 객체들은 old 영역으로 이동되고 마찬가지로

old 영역에서도 살아남은 객체들은 permanent 영역으로 옮기게 된다.

young 영역에서 발생된 GC를 minor GC

old 영역에서 발생된 GC를 major GC 혹은 full GC 라고 한다.