G1 GC 란?

이름·2023년 7월 10일

G1 GC(Garbage First Garbage Collector)

: Java SE 6u14부터 추가된 새로운 GC 알고리즘입니다.
G1 GC는 대용량의 메모리를 가진 멀티프로세서 시스템에서 사용하기 적합한 GC 알고리즘입니다.

특징

  1. 영역 기반 GC 알고리즘
    기존의 GC 알고리즘은 전체 힙 영역을 대상으로 GC를 수행했지만, G1 GC는 힙 영역을 여러 개의 작은 영역으로 분할하여 GC를 수행합니다. 이를 통해 GC의 부담을 분산시켜 더 빠르고 예측 가능한 GC를 가능하게 합니다.

  2. 가비지 컬렉션 대상을 동적으로 선택
    G1 GC는 가장 많은 가비지가 존재하는 작은 영역부터 우선적으로 GC를 수행합니다. 이를 통해 GC 작업이 더 짧아지고, 응답 시간도 개선됩니다.

  3. 실시간 GC 가능
    G1 GC는 힙 영역을 여러 개의 작은 영역으로 나누어 GC 작업을 수행하기 때문에, 일부 영역만 GC를 수행하고 나머지 영역은 계속 사용할 수 있습니다. 따라서, 실시간 GC가 가능합니다.

  4. 메모리 사용량 예측 가능
    G1 GC는 힙 영역을 작은 영역으로 나누어 GC 작업을 수행하기 때문에, 각 영역의 메모리 사용량을 측정할 수 있습니다. 이를 통해 메모리 사용량을 예측할 수 있습니다.

정리

G1 GC는 대용량의 메모리를 가진 멀티프로세서 시스템에서 사용하기 적합한 GC 알고리즘입니다. 하지만, G1 GC는 이전에 사용하던 GC 알고리즘보다 복잡하며 성능 튜닝이 어렵다는 단점도 있습니다.
따라서, G1 GC를 사용하기 전에 시스템 환경과 애플리케이션의 특성을 고려하여 적절한 GC 알고리즘을 선택하는 것이 중요합니다.

0개의 댓글