GC를 수행하기 위해 Stop The World가 발생되어 메모리를 청소하는 동안 애플리케이션의 실행을 일시 중단시킵니다. 이 중단 시간이 길어질수록 애플리케이션의 응답 시간이 느려질 수 있습니다.
저지연 GC는 이러한 일시 중단 시간을 최소화하여 애플리케이션의 성능을 개선합니다. 실시간 애플리케이션이나 반응성이 중요한 애플리케이션에서는 저지연이 특히나 중요합니다.
GC 알고리즘 종류
Parallel GC
- 기본 알고리즘 (Java 8)
- Young 영역의 Minor GC를 멀티 쓰레드로 수행하여 성능 향상
- 대규모 애플리케이션에 적합하지만, 중단 시간이 길어질 수 있음
Parallel Old GC
- Parallel GC를 개선한 버전으로, Young 영역 뿐만 아니라 Old 영역에서도 멀티 쓰레드로 GC를 수행
- Old 영역의 GC를 더 효율적으로 수행하는 새로운 청소 방식인 Mark-Summary-Compact 적용
G1 GC (Garbage First)
- 기본 알고리즘 (Java 9부터 현재 22까지)
- 대규모 애플리케이션에서 안정적인 성능 제공
- 힙을 여러 리전(region)으로 나누어 관리하고, 동시에 여러 리전을 청소하여 일시 중단 시간을 줄임
- 기존의 GC 알고리즘에서는 Heap 영역을 물리적으로 고정된 Young / Old 영역으로 나누어 사용하였지만, G1 GC는 전체 Heap 영역을 Region이라는 영역으로 체스같이 분할하여 상황에 따라 Eden, Survivor, Old 등 역할을 고정이 아닌 동적으로 부여
- region-based로 인해 메모리 단편화 문제발생이 크게 감소됨

Shenandoah GC
- 저지연 GC
- 실시간 애플리케이션에 적합
- G1 GC가 가진 pause 이슈 해결
ZGC (Z Garbage Collector)
- Java 17에서 정식 도입
- 초저지연 GC (일시 중단 시간을 10ms 이하로 유지),
- 큰 힙 메모리에서 효율적
- 멀티 테라바이트 힙 지원
ref.
https://1-7171771.tistory.com/140
가비지 컬렉션 동작 원리 & GC 종류 총정리
https://mirinae312.github.io/develop/2018/06/04/jvm_gc.html