728x90
반응형
SMALL
가비지 컬렉터 | 특징 | 장점 | 단점 | 적합한 상황 |
G1 GC | 영역별 관리, 동시성 GC | 정지 시간 최소화, 가비지가 많은 영역 우선 처리 | 작은 힙에서 상대적으로 비효율적 | 대용량 힙, 낮은 정지 시간이 필요한 경우 |
Parallel GC | 병렬 처리 | 전체 처리 시간 단축 | 정지 시간이 길 수 있음 | 병렬 처리 성능을 중요시하는 경우 |
CMS GC | Old 영역 동시성 GC | 정지 시간 최소화 | 메모리 추가 사용, 고부하에서 성능 저하 | 정지 시간이 짧아야 하는 경우 |
ZGC | 저지연, 대용량 힙 처리 | 대용량 힙, 매우 낮은 정지 시간 | 메모리 오버헤드가 높을 수 있음 | 대용량 힙과 매우 낮은 정지 시간이 필요한 경우 |
Shenandoah GC | 저지연, 다양한 플랫폼 지원 | 정지 시간 최소화, 다양한 환경에서 사용 가능 | 메모리 오버헤드가 높을 수 있음 | 정지 시간이 짧아야 하며, 다양한 플랫폼에서 작동하는 경우 |
G1 GC (Garbage-First Garbage Collector)
- G1 GC는 Java의 HotSpot 가상 머신에서 사용되는 동시성 가비지 컬렉터입니다.
- 기존의 Young, Old 영역을 여러 개의 동일한 크기의 영역으로 나누어 관리하며, 영역 별로 가비지 컬렉션을 수행합니다.
- 가비지가 많은 영역부터 처리하여 전체적인 가비지 컬렉션 효율을 높입니다.
- 멀티스레드를 효율적으로 활용하여 가비지 컬렉션 작업을 병렬로 처리하고, 정지 시간을 최소화합니다.
Parallel GC
- Parallel GC는 여러 스레드를 사용하여 가비지 컬렉션 작업을 병렬로 처리하는 가비지 컬렉터입니다.
- Young 영역의 가비지 컬렉션은 전체 스레드를 사용하여 처리하며, 정지 시간이 짧습니다.
- Old 영역의 가비지 컬렉션은 모든 애플리케이션 스레드를 일시 중지하고 병렬로 처리합니다.
CMS GC (Concurrent Mark and Sweep Garbage Collector)
- CMS GC는 Old 영역에 대한 가비지 컬렉션 작업을 애플리케이션 실행과 동시에 수행하는 가비지 컬렉터입니다.
- Young 영역은 병렬 GC와 동일한 방식으로 처리합니다.
- Old 영역에서는 가비지 컬렉션 작업을 애플리케이션 스레드와 동시에 수행하므로, 정지 시간이 상대적으로 짧습니다.
- 단점으로는, 가비지 컬렉션 작업 중에 메모리를 추가로 사용하게 되며, 가비지 컬렉션 성능이 높은 부하 상황에서 저하될 수 있습니다.
ZGC (Z Garbage Collector)
- ZGC는 Java의 HotSpot 가상 머신에서 사용되는 저지연 가비지 컬렉터입니다.
- 대용량 힙을 다루는 데 특화되어 있으며, 수 밀리초의 정지 시간으로 가비지 컬렉션을 수행합니다.
- 가상 메모리를 활용하여 객체를 이동하며, 가비지 컬렉션 작업을 병렬로 처리합니다.
- 동시성 가비지 컬렉션을 지원하며, 애플리케이션의 실행을 최소한으로 방해하면서 가비지 컬렉션을 수행합니다.
Shenandoah GC
- Shenandoah GC는 OpenJDK에서 사용되는 저지연 가비지 컬렉터입니다.
- 대용량 힙을 처리하는 데 특화되어 있으며, 수 밀리초의 정지 시간으로 가비지 컬렉션을 수행합니다.
- 애플리케이션 스레드와 동시에 가비지 컬렉션 작업을 병렬로 처리하며, 정지 시간을 최소화합니다.
- 다양한 플랫폼에서 사용할 수 있도록 설계되어 있습니다.
728x90
반응형
LIST
'Java' 카테고리의 다른 글
자바에서 @Autowire 대신 생성자 또는 @requiredargsconstructor 어노테이션 사용하기 : 그 이유와 특징 (0) | 2023.05.21 |
---|---|
자바의 객체 지향 특징 4가지 (0) | 2023.05.15 |
자바 11과 17 버전의 차이점 (0) | 2023.05.03 |
가비지 컬렉션(Garbage Collection) 이해하기 (0) | 2023.05.02 |
JVM(Java Virtual Machine) 이해하기 - 동작 원리 및 구성 요소 (0) | 2023.04.30 |