반응형
Garbage Collection의 종류와 특징을 정리한다.
> 작성일 : 2022-03-31
<1> Serial GC
- 한개의 스레드가 동작하여 메모리를 해제
- 동작이 느리고 Stop The World 시간이 길어 근래에는 사용되지않음
- Java 실행시 옵션 : -XX:+UseSerialGC
<2> Parallel GC
- Minor GC에서 멀티스레드가 동작하여 메모리를 해제
- Serial GC대비 Stop The World가 짧음
- Java 8의 Default GC
- Java 실행시 옵션 : -XX:+UseParallelGC
<3> Parallel Old GC
- Minor GC & Major GC에서 멀티스레드가 동작하여 메모리를 해제
- Major GC에서 Mark-Summary-Compact 방식을 사용
- 멀티스레드 개수를 옵션으로 지정가능 (-XX:+ParallelGCThreads=n)
- Java 실행시 옵션 : -XX:+UseParallelOldGC
<4> CMS GC (Concurrent Mark Sweep)
- Stop The World 최소화를 위해 만든 GC
- 4단계로 이루어짐
1> Initial Mark : 참조 객체 마킹
2> Concurrent Mark : 마킹된 객체를 추적
3> Remark : 정리대상 확정
4> Concurrent Sweep : 미사용 객체 제거
<5> G1 GC (Garbage First)
- 기존 달리 논리적인 단위(Region)로 구분하여 메모리를 관리
- Young / Old 영역을 명확히 구분하지 않으며 2가지 추가적인 논리단위가 있음
1) Humonogous : Region 크기의 50%를 초과하는 큰객체 저장용
2) Available / Unused : 아직 사용되지 않는 Region
- Heap전체를 탐색하지 않고 부분탐색하여 처리속도가 빠름
- Heap메모리가 클수록 잘 동작함 (Heap이 너무작을경우 미사용 권장)
- Java 9+의 Default GC
- Java 실행시 옵션 : -XX:UseG1GC
반응형
'Concept' 카테고리의 다른 글
[Concept | DevOps] 라이프사이클 (0) | 2025.01.05 |
---|---|
[Concept | DevOps] 정의 (0) | 2025.01.05 |
[Concept | Java] Garbage Collection 구동원리 (0) | 2025.01.05 |
[Concept | Architecture] 3Tier (0) | 2025.01.02 |
[Concept | Encryption] 암호화 유형 (0) | 2025.01.02 |