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 |