Garbage Collection

Garbage Collection

가비지 컬렉션의 대상

  1. 참조 되지 않는 메모리

  2. Network Socket, File Descriptor 처리 되지 않아서 따로 처리 필요 (이로 인한 장애사례: Syslog)

  3. Heap 영역 -> 미사용 객체 삭제 (포인터 참조 유무)

가비지 컬렉션 트레이싱

  1. Root Set에서 reference 되지 않는 값들을 제외하고 다 삭제처리

  2. 이후에 compact로 메모리 파편화를 제거

  3. 이러한 스텝: Mark -> Sweep -> Compact

가비지 컬렉션 Generations

  1. Young - 새로 생긴 객체들

  2. Old - 몇세대 살아남은 객체

  3. Permanent - 클래스 메서드 메타 데이터

트레이싱을 각각 해줌으로 최적화를 진행

메모리에 비해 너무 많은 객체가 생기면 GC부터 버벅거리는 이유는 STW(STOPTHEWORLD) 이벤트가생기기 때문이다.

자바의 GC들

  1. PARALLEL GC -> STW 있음

  2. SERIAL GC -> STW 있음

  3. ZGC -> 응답시간 중요

  4. G1GC -> STW 시간 짧게 유지

Last updated