Heap 영역


Heap 영역은 new 연산자 등으로 생성된 객체(인스턴스)와 배열 등 을 저장되는 영역으로서 GC가 발생한다.

GC는 한정적인 메모리 자원을 효율적으로 사용하기 위해 더이상 불필요한 리소스들을 메모리에서 제거하는 작업을 의미한다. 이 때, 불필요한 리소스들을 추적/관리하기 위해 Heap의 각 영역들이 필요하다.

Eden 영역


새로 생성된 객체가 처음 위치하는 영역. Minor GC 발생 이후 살아남은 객체들은 Survivor1 또는 Survior2 중 선택된 하나의 영역으로만 이동하여 쌓임.

Survivor 영역


Survivor1 또는 Survivor2 중 하나의 영역이 꽉차게 되면, Mnror GC가 발생하고 살아남은 객체는 비워진 Survivor 영역으로 이동한다. 이때 참조가 없는 객체들은 메모리에서 정리된다.

한개의 영역은 채워져있고 다른 영역은 비워진 상태를 유지한다.

튜닝 옵션

-XX:NewSize        : 최소 new size (Eden+Survivor 영역) 
-XX:MaxNewSize     : 최대 new size 
-XX:SurvivorRatio  : New/Survivor영역 비율

Old 영역