-
[Java] 버전별 GC 목록 ( OpenJDK )Computer Science/Java 2024. 2. 7. 17:55
- GC 확인 방법
- Java8의 GC
- Java11의 GC
- Java17의 GC
- Java21의 GC
GC 확인 방법
현재 Default 로 적용된 GC를 확인하는 방법은 크게 2가지로 다음과 같습니다.
1. 적용중인 Flag를 확인하는 방법
java -XX:+PrintCommandLineFlags -version
해당 명령어로 현재 적용중인 Flag들과 버전을 같이 확인 할 수 있습니다.
Java8에서의 결과 위와 같이 결과가 나오는데 Java8의 경우 ParallelGC를 사용하는 것으로 확인됩니다.
2. 전체 Flag를 확인하는 방법
java -XX:+PrintFlagsFinal -version
해당 명령어로 사용 가능한 Flag들과 현재 그 값들을 확인할 수 있습니다.
grep 명령어와 함께 사용하여 GC 목록들만 뽑아서 확인하면 다음과 같습니다.
Java8 의 GC
Java8 에서의 GC
Java8 의 GC 해당 이미지를 잘 살펴보면 Java8에서는 크게 5가지의 GC를 확인할 수 있습니다.
- ConcMarkSweepGC & ParNewGC
- G1GC
- ParallelGC
- ParallelOldGC
- SerialGC
Default GC는 ParallelGC인데 자세히 확인해보시면 ParallelGC와 ParallelOldGC가 동시에 활성화 되있는 것을 확인 할 수 있습니다.
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html
java
Large Pages Also known as huge pages, large pages are memory pages that are significantly larger than the standard memory page size (which varies depending on the processor and operating system). Large pages optimize processor Translation-Lookaside Buffers
docs.oracle.com
찾은 것이 비록 Oracle 이지만 ParallelGC 옵션은 추가로 설정을 하지 않는 이상 ParallelOldGC 옵션을 활성화 시키며 ParallelOldGC는 ParallelGC를 자동으로 활성화 시킨다고 되어있습니다.
즉 ParallelGC만을 활성화는 가능하지만 ParallelOldGC만 활성화는 불가능합니다.
ParallelGC 설명 또한 ConcMarkSweepGC는 활성화 시 ParNewGC가 자동으로 활성화 되고 역으로도 마찬가지라고 설명이 되어있습니다.
Java11에서의 GC
Java11 의 GC Java11에서도 5개의 GC가 확인됩니다.
- ConcMarkSweepGC
- G1GC
- ParallelGC
- ParallelOldGC
- SerialGC
Java11에서는 Default GC가 G1GC이며 ParNewGC가 사라졌습니다.
추가로 Oracle 에서는 ZGC도 확인이 됩니다.
Oracle Java11에서 ZGC HotSpot Virtual Machine Garbage Collection Tuning Guide
The discussion to this point has been about the serial collector. The Java HotSpot VM includes three different types of collectors, each with different performance characteristics.
docs.oracle.com
Java17에서의 GC
Java17의 GC Java17에서부터는 ZGC와 ShenandoahGC가 보이기 시작합니다.
Default GC는 그대로 G1GC이며 ParallelOldGC가 ParallelGC로 병합되어서 따로 존재하지 않습니다.
- G1GC
- ParallelGC
- SerialGC
- ShenandoahGC
- ZGC
다만 Oracle에서는 ShenandoahGC가 확인되지 않는데 이는 Openjdk 홈페이지에서도 확인이 가능합니다.
ShenandoahGC의 Releases HotSpot Virtual Machine Garbage Collection Tuning Guide
The discussion to this point has been about the serial collector. The Java HotSpot VM includes three different types of collectors, each with different performance characteristics.
docs.oracle.com
https://wiki.openjdk.org/display/shenandoah/Main
Main - Main - OpenJDK Wiki
wiki.openjdk.org
Java21에서의 GC
Java21의 GC Java21에서도 동일하게 5개의 GC가 확인되며 Default GC 또한 동일하게 G1GC입니다.
- G1GC
- ParallelGC
- SerialGC
- ShenandoahGC
- ZGC
'Computer Science > Java' 카테고리의 다른 글
[Java] GC 종류별 메모리 상황에 따른 테스트 (0) 2024.02.08 [JAVA] JVM 동작 방식 (1) 2024.02.06 Mac 터미널 java version 임시 변경 (0) 2022.11.10 SOLID (0) 2022.10.05 open-jdk-17 설치. (0) 2022.07.27