본문 바로가기
JAVA

Garbage Collection

by e-pd 2020. 9. 4.

Photo by Gary Chan on Unsplash

  • Java는 명시적 메모리 할당은 가능하지만 명시적 해제는 할 수 없음
  • Heap 메모리 특정 오브젝트를 삭제
  • 알고리즘에 의한 자동 수행
  • GC(Grrbage Collection) 특성상 Application 수행이 정지되는 Stop the world 이 발생.

 

 

1. Hotspot JVM에서 발생하는 GC의 종류

 

Minor GC

: Young Generation에서의 GC

: 빈번하게 발생. GC에 의한 Suspend 현상이 짧게 발생함.

 

Full GC (Major GC)

: Old Generation, Perm Area의 GC 수행

어플리케이션 수행에 많은 영향. GC에 의한 Suspend 현상이 길게 나타남.

 

 

 

2. Garbage Collection

대표적인 GC 중 Seraial, Parallel Collector 소개

 

-Serial Collector : 기본 Gabage Collector. Single Tread에서 작동

Suspend 현상이 심하여 거의 사용되지않음. 

 

-Parallel Collector: 멀티코어에서 Throughput 위주 Collector

 

Young Generation : Parallel Copy

여러개의 GC Thread가 copy 수행.

 

Old Generation : Mark-and-Compacting 알고리즘이 실행

 

1. GC를 하게될 메모리 영역을 마크를 한다.

 

 

 

2. Mark영역의 메모리 해제를 하는 Sweep 이 발생한다. 이때 메모리 가용영역의 조각화가 발생한다.

 

3. 해당 가용영역을 모아주는 Compacting 작업이 발생한다. 

'JAVA' 카테고리의 다른 글

Interface default methods  (0) 2020.10.19
Java8 Function  (0) 2020.10.18
Java Heap  (0) 2020.09.04
JVM  (0) 2020.08.14
자바 면접 질문 정리  (0) 2020.08.06