Garbage Collector

JAVA/JAVA 2019. 4. 23. 11:26 |

Garbage Collertor 알고리즘 동작 방식 알아보자.

- Serial GC

- Parallel GC

- Parallel Old GC

- Concurrent Mark - Sweep GC

- G1 (Garbage First)GC

 

Serial GC

-XX:+UseSerialGC 

young/old 영역을  Single CPU를 사용한다.(현재 거의 사용 안함)

 

Parallel GC 

-XX:+UseParallelGC

young 영역은 멀티쓰레드로 처리되지만, Old 영역은 싱글쓰레드로 처리된다.

 

 Parallel Old GC

-XX:+UseParallelOldGC

young/old 영역 모두 멀티 쓰레드 방식으로 처리된다.

 

Concurrent Mark & Sweep GC (CMS)

-XX:+UseSerialGC

영역의 크기가 클 때 적합한 방식이다.

Suspend Time 분산하여 응답시간을 개선한다

비교적 자원이 여유있는 상태에서 GC 의 Pause Time 을 줄이는 목적으로 사용한다.

 

 

*Minor GC

eden 이 가득차면 삭제할 object들을 찾는다.(참조하지 않는 객체)

참조중 (계속 사용할 객체)면 Survior 영역으로 옮겨둠

참조가 없으면 남겨둔다(eden)

참조중인 객체가 모두 넘어가면 Eden을 싹 청소함

 

* Full GC

 old 영역: 접근 불가능 상태로 되지 않아 young 영역에서 살아남은 객체가 여기로 복사됨

대부분 Young 영역보다 크게 할당 하며,크기가 큰 만큼 young 영역보다 Gc는 적게 발생함

old 영역에 데이터가 가득차면 GC 를 수행하는데 GC 알고리즘 수행됨.

 

 

 

 

 

 

 

'JAVA > JAVA' 카테고리의 다른 글

[자료구조]List  (0) 2019.04.28
jvm 메모리 구조  (0) 2019.04.22
[객체지향] JAVA SOLID 원칙  (0) 2019.02.23
제네릭 메소드  (0) 2017.05.17
제네릭 개념 알기  (0) 2017.05.16
Posted by 양승아
: