Garbage Collection
Garbage Collection
가비지 컬렉션의 대상
참조 되지 않는 메모리
Network Socket, File Descriptor 처리 되지 않아서 따로 처리 필요 (이로 인한 장애사례: Syslog)
Heap 영역 -> 미사용 객체 삭제 (포인터 참조 유무)
가비지 컬렉션 트레이싱
Root Set에서 reference 되지 않는 값들을 제외하고 다 삭제처리
이후에 compact로 메모리 파편화를 제거
이러한 스텝: Mark -> Sweep -> Compact
가비지 컬렉션 Generations
Young - 새로 생긴 객체들
Old - 몇세대 살아남은 객체
Permanent - 클래스 메서드 메타 데이터
트레이싱을 각각 해줌으로 최적화를 진행
메모리에 비해 너무 많은 객체가 생기면 GC부터 버벅거리는 이유는 STW(STOPTHEWORLD) 이벤트가생기기 때문이다.
자바의 GC들
PARALLEL GC -> STW 있음
SERIAL GC -> STW 있음
ZGC -> 응답시간 중요
G1GC -> STW 시간 짧게 유지
Last updated