NHN Cloud Meetup

Latest Java Garbage Collection

thumbnail

Java Garbage Collection 요약

Eden, Survivor, Old, Available/Unused, Humongous Region

  • Eden : 메모리 할당 시 최초 영역
  • Survivor : Eden 영역에서 이동되는 객체가 이동하는 영역
  • Old : Survivor 영역에서 살아남은 객체가 이동되는 영역
  • Available/Unused region : 사용하지 않는 영역
  • Humongous region : 일정 부분을 채우는 큰 객체가 할당되는 영역

GC 작동 단계

  1. Initial Marking (Minor GC)
    • Eden 영역에서 Survivor 영역으로 이동하는 객체들을 마킹
  2. Concurrent Marking (STW)
    • Old Region에서 참조하고 있지 않은 객체 마킹
  3. Remark (Major GC) (STW)
    • Initial Marking에서 참조하고 있지 않은 객체 회수
  4. Copying/Cleanup (STW)
    • 객체 이동 후 GC 진행
  5. Compact
    • GC 후 메모리 조각화 문제 해결

ZGC

  • G1보다 더 낮은 Latency와 높은 처리량을 목표로 함
  • Compact 하지 않고 새로운 영역 할당을 통해 메모리 조각화 문제 해결
  • Load Barrier를 이용해 무결성 문제 보완