티스토리 뷰
Serial GC ( -XX:+UseSerialGC )
Serial Collector 는 Java SE 5 와 6 의 기본 Garbage Collector 였다. Serial Collector 는 하나의 가상 CPU 를 사용하여 Minor GC 와 Major GC 가 순차적으로 끝난다. 그리고 mark 하고 압축(mark-compact)하는 수집 함수를 사용한다. 이 함수는 오래된 메모리들을 Heap 영역의 시작점으로 이동시켜서 새로운 메모리 할당은 힙 영역 끝에서 단일된 연속의 덩어리로 만들어지도록 한다. 이 메모리 압축은 새로운 덩어리의 매모리를 Heap 에 할당할때 더 빠르게 만든다.
Parallel GC ( -XX:+UseParallelGC )
Parallel Collector 는 Young Generation 을 GC 하기 위해 여러개의 쓰레드를 사용한다. 디폴트로 호스트가 N 개의 CPU 를 사용한다면 N 개의 쓰레드를 GC 에 사용한다.
-XX:+UseParallelGC 옵션을 사용하면 Young Generation 의 GC 에는 여러개의 쓰레드가 사용되지만 Old Generation 의 GC 에는 하나의 쓰레드만 사용된다. -XX:+UseParallelOldGC 를 사용하면 Young 과 Old Generation 를 GC 할때 여러개의 쓰레드를 사용한다. 힙 영역 압축은 Old Generation 만 된다. Young Genration 은 Copy Collector 로 간주된다. 때문에 압축이 필요없다.
압축은 GC 에 의해서 힙 영역에 빈 구멍이 없도록 하는 것이다. GC 이후에 살아있는 객체들 사이에는 빈 구멍이 존재할 것이다. Paralle Collector 와 Parallel Compaction Collector 의 차이는 GC 이후에 공간을 압축하느냐 안하느냐의 차이다.
CMS GC ( -XX:+UseConcMarkSweepGC )
CMS Collector 는 짧은 "pause time" 이 요구되고 응용프로그램과 GC 가 자원을 공유할 수 있을때 사용된다. CMS Collector 는 응용프로그램의 쓰레드와 함께 GC 작업을 동시에 진행하여 "pause time" 을 최소화 하려고 시도한다. 일반적으로 Concurrent Low Pause Collector 는 살아있는 객체를 복사하거나 압축하지 않는다. GC 는 살아있는 객체를 이동하지 않고 끝난다. 만약 살아있는 객체 파편들이 문제가 된다면 더 큰 힙을 할당한다. CMS Collector 는 Young Generation 에 한하여 Parallel GC 와 동일한 알고리즘을 사용한다.
G1GC ( -XX:+UseG1GC )
Garbage first Collector 는 CMS Collector 를 대체하기 위해서 오래전부터 고안되었고 java7 부터 사용 가능하다. 다른 Collector 과는 다른 레이아웃을 사용하기 때문에 다음 장에서 설명한다.
출처 : https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/gc01/index.html
'JAVA' 카테고리의 다른 글
G1GC ( Garbage First ) GC (0) | 2020.05.06 |
---|---|
CMS Collector GC (0) | 2020.05.06 |
JVM Generation 과 GC 과정 (0) | 2020.05.06 |
Garbage Collection 이란? (0) | 2020.05.06 |
Error 와 Exception (0) | 2020.05.02 |
- Total
- Today
- Yesterday
- N+1
- notifyAll()
- wait()
- GlobalFilter
- rate limit
- router
- custom config data convertion
- dynamodb
- mariada-connector
- MariaDB
- circurit breaker
- getBoolean
- RoutePredication
- AbstractMethodError
- spring cloud gateway
- referencedColumnName
- DyanomoDB
- Seperate Chaining
- notify()
- HashMap
- mariadb-connector-j
- msyql-connector-java
- RouteDefinition
- Lazy
- ResultSet
- reative
- reactor
- ConcurrentHashMap
- aurora
- Flux
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |