simple JVM GC guide
· 4 min read
📌 1. JVM 메모리 구조 이해
JVM은 실행 중 다음과 같은 주요 메모리 영역을 사용합니다:
- Metaspace (클래스 메타정보)
- Heap (객체 인스턴스 저장)
- Stack (지역 변수, 프레임 등)
- Code Cache (JIT 결과 저장)
- Heap: 대부분의
new객체가 이곳에 생성됨 - Metaspace: static 필드, 클래스 구조, 메서드 정보 등 클래스 로딩 시 저장
- Stack: 각 스레드마다 존재, 지역 변수 및 호출 컨텍스트 저장
♻️ 2. GC(Garbage Collection) 기본 처리 단계
- 객체 생성 → Eden 영역에 할당
- Mark → GC Root로부터 도달 가능한 객체 추적
- Sweep/Copy/Compact
- Young GC: 살아남은 객체를 Survivor 또는 Old로 복사
- Old GC: Mark-Compact로 단편화 해소
- Promotion → 일정 생존 횟수 이상 객체는 Old 영역으로 승격
⚙️ 3. G1 GC 구조 요약 (JDK 17 기본 GC)
- 전체 힙을 고정 크기 Region으로 나눔 (Eden, Survivor, Old, Humongous)
- GC 유형:
- Young GC: Eden → Survivor
- Mixed GC: 일부 Old도 수집
- Full GC: 전체 힙 수집 (가능한 회피)
