Java
가비지 컬렉션 (Garbage Collection)
옴악핫세
2023. 3. 4. 17:03
- Garbage : 앞으로 사용되지 않는 객체의 메모리
- 가비지 컬렉션이란? 자바의 메모리 관리 기법으로 어플리케이션이 동적으로 할당했던 메모리 영역 중 더이상 사용하지 않는 영역을 정리하는 기능
- GC는 Heap 메모리에서 활동하며, JVM에서 GC의 스케줄링을 담당하며 개발자가 직접 관여하지 않아도 더이상 사용하지 않는 점유된 메모리를 제거해주는 역할을 담당
- Stop The World : GC를 수행하기 위해 JVM이 멈추는 현상을 의미, GC가 작동하는 동안 GC 관련 스레드를 제외한 모든 스레드는 멈춤, 일반적으로 튜닝이라는 것은 이 시간을 최소화하는 것을 의미함
- GC의 종류
- Serial GC
- Parallel GC
- CMS GC
- G1 GC
- Z GC
- GC의 원리
GC 가 가능했던건 약한 세대 가설을 기반으로 메모리 구조를 크게 2개의 물리적 공간으로 나눔
1. 대부분의 객체는 금방 접근 불가능 (Unreachable)한 상태가 됨
2. 오래된 객체에서 젊은 객체로의 참조는 아주 적게 발생
- Heap Area
GC는 간단하게 말해서 Heap Area에서 더이상 사용하지 않는 메모리를 제거하는 것을 의미