가비지 컬렉션(Garbage Collection)
: JVM의 Heap 영역에서 '동적으로 할당했던 메모리 영역 중, 더 이상 사용하지 않는 메모리를 주기적으로 삭제하는 프로세스'를 말합니다.
가비지 컬렉션의 장점
: 개발자가 메모리 관리를 직접 하지 않아도 자동적으로 메모리 누수를 방지합니다.
가비지 컬렉션의 단점
: 개발자는 메모리가 정확히 언제 해제되는지 알 수 없습니다.
: 가비지 컬렉션이 작동하는 동안에는 JVM이 애플리케이션 실행을 일시적으로 멈추는 오버헤드(Stop the world)가 발생합니다.
가비지 컬렉션의 일반적인 과정
1. Marking
: JVM은 Heap 메모리 내에서 사용 중인 모든 객체를 표시합니다. 더 이상 사용되지 않는 객체는 표시되지 않습니다.
2. Sweeping
: JVM은 표시되지 않는 객체를 삭제합니다.
3. Compacting
: JVM은 Heap 메모리 내에서 객체를 이동시켜 빈 공간을 채웁니다. 이 단계는 삭제된 객체로 인해 생긴 빈 공간을 메우기 위해 수행됩니다.
'java(자바)' 카테고리의 다른 글
[java(자바)] 자바의 메모리 영역 5가지 _디버깅의 눈물 (0) | 2023.03.18 |
---|---|
[java(자바)] 자바의 컴파일 과정 _디버깅의 눈물 (0) | 2023.03.17 |
[java(자바)] JDK, JRE, JVM의 차이점은? _디버깅의 눈물 (0) | 2023.03.16 |
[java(자바)] 자바의 장점과 단점은? _디버깅의 눈물 (0) | 2023.03.16 |
[java(자바)] 자바의 대표적인 특징 5가지 _디버깅의 눈물 (0) | 2023.03.15 |