Dragonwell 11
이 인자들은 Dragonwell 11 전용이다.
-XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysActAsServerClassMachine -XX:+AlwaysPreTouch -XX:+ExplicitGCInvokesConcurrent -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=400M -XX:NonNMethodCodeHeapSize=12M -XX:ProfiledCodeHeapSize=194M -XX:NonProfiledCodeHeapSize=194M -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:+UseVectorCmov -XX:+PerfDisableSharedMem -XX:+UseFastUnorderedTimeStamps -XX:+UseCriticalJavaThreadPriority -XX:ThreadPriorityPolicy=1 -XX:AllocatePrefetchStyle=3 -XX:+UseVtableBasedCHA -Dcom.alibaba.enableFastSerialization=true -XX:+UseBigDecimalOpt -XX:+ReduceNMethodSize이것이 기본 인자다.
ZGC
섹션 제목: “ZGC”Dragonwell 11의 ZGC는 OpenJDK 11의 ZGC와 다르다. Dragonwell은 OpenJDK 15+의 ZGC 패치를 이식해서 운영 환경에 쓸 수 있는 수준으로 만들었다.
-XX:+UseZGC -XX:AllocatePrefetchStyle=1 인자를 추가하면 켜진다.
G1GC
섹션 제목: “G1GC”다음 인자를 추가한다.
-XX:+UseG1GC -XX:MaxGCPauseMillis=130 -XX:+UnlockExperimentalVMOptions -XX:+ExplicitGCInvokesConcurrent -XX:+AlwaysPreTouch -XX:G1NewSizePercent=28 -XX:G1HeapRegionSize=16M -XX:G1ReservePercent=20 -XX:G1MixedGCCountTarget=3 -XX:InitiatingHeapOccupancyPercent=10 -XX:G1MixedGCLiveThresholdPercent=90 -XX:G1RSetUpdatingPauseTimePercent=0 -XX:SurvivorRatio=32 -XX:MaxTenuringThreshold=1 -XX:G1SATBBufferEnqueueingThresholdPercent=30 -XX:G1ConcMarkStepDurationMillis=5 -XX:G1ConcRefinementServiceIntervalMillis=150 -XX:G1ConcRSHotCardLimit=16 -XX:+G1BarrierSimple객체 헤더 압축
섹션 제목: “객체 헤더 압축”Java 객체의 메모리 사용량을 10% 정도 줄이고, 프로그램 성능이 좋아질 수도 있다.현재 G1GC와 ParallelGC만 지원한다.
-XX:+UseCompactObjectHeaders 인자를 추가한다.
Wisp
섹션 제목: “Wisp”Wisp는 JVM에서 사용자 모드 스레드 구현을 제공한다. Wisp2를 켜면 Java 스레드가 커널 스레드에 1:1로 매핑되지 않고 코루틴에 대응되며, JVM이 적은 수의 커널 스레드 위에서 많은 코루틴을 스케줄링해 커널 스케줄링 부담을 줄인다.
JVM 인자만 추가하면 Wisp2를 켤 수 있고, 프로그램을 고칠 필요가 없다!!
-XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 인자를 추가한다.