본문 바로가기
언어/Java

Java Garbage Collection 작동원리

by 바보3 2021. 9. 14.

Stack 에서 Heap에 도달하지 않는 Object를 찾는다

Mark : GC가 Stack의 모든 변수를 스캔하면서 어떤 객체를 참조하고 있는지 찾는 과정
Sweep : Mark가 되어있지 않은 Object를 Heap에서 제거

Mark and Sweep
Garbage가 아닌것들을 Mark 하고 그 이외의 것들을 제거한다

GC 는 크게 2개의 영역으로 이루어짐 (Young, Old)

Young 영역 :
Young은 3개의 영역으로 이루어져 있다
Eden, Survivor1, Survivor2

1. 새로생성된 객체의 대부분은 Eden 영역에 위치한다
2. Eden영역에서 GC가 한번 발생한 후(Minor GC) 살아남은 객체들은 Survivor1 영역으로 이동.
3. Survivor1 영역이 가득 차면 거기서 살아남은 객체를 Survivor2 영역으로 이동하게 되고, 

Survivor1 영역을 Clear 함
4. 1~3의 과정을 계속 반복한 후 살아남은 객체는 old 영역으로 이동하게 된다.



'언어 > Java' 카테고리의 다른 글

람다식  (0) 2021.09.17

댓글