Open skarltjr opened 2 years ago
참고 : stop the world
GC를 실행하기 위해 JVM이 어플리케이션 실행을 멈추는 것
내가 사용하는 자바 11은 어떤 GC를 사용할까?
java 9부터는 G1GC를 디폴트로 사용한다.
Garbage First Garbage Collector
G1GC의 힙 레이아웃은 다른 gc들과는 조금 다르다.
전체 heap을 굉장히 잘게 쪼개 나눠 관리한다.
비어있는 영역에만 새로운 객체가 들어간다.
쓰레기가 꽉 찬 영역을 우선적으로 청소한다.
꽉 찬 영역에서 만약 ⭐️여전히 살아있는 객체가 있다면 이 객체를 다른 비어있는 영역으로 옮기고 꽉 찬 영역을 청소한다.
앞서 객체를 옮기는 과정속에서 흩어진 조각 모음의 역할도한다.
참고 :
young only
페이즈 : 쓰레기를 청소한다
Concurrent Start
: 살아있는 객체들을 marking
Remark
: 마킹을 끝내고 쓰레기 영역 해지Cleanup
: space-reclamation영역으로 들어갈지 판단한다.space-reclamation
페이즈 : 쓰레기가 찬 공간을 청소하기 전 살아있는 객체를 다른곳으로 대피시킨다.
1. JVM GC란
2. gc의 동작순서
2-2. 영역
3. GC의 종류
3-1. Serial GC
3-2. Parallel GC
3-3. parallel old gc
3-4. CMS GC