콘텐츠로 이동

Dragonwell 8

이 인자들은 Dragonwell 8 전용이다.

-XX:+UnlockExperimentalVMOptions -XX:+UnlockDiagnosticVMOptions -XX:+AlwaysActAsServerClassMachine -XX:+ParallelRefProcEnabled -XX:+ExplicitGCInvokesConcurrent -XX:+AlwaysPreTouch -XX:+PerfDisableSharedMem -XX:+AggressiveOpts -XX:+UseFastAccessorMethods -XX:MaxInlineLevel=15 -XX:MaxVectorSize=32 -XX:+UseCompressedOops -XX:ThreadPriorityPolicy=1 -XX:+UseDynamicNumberOfGCThreads -XX:NmethodSweepActivity=1 -XX:ReservedCodeCacheSize=350M -XX:-DontCompileHugeMethods -XX:MaxNodeLimit=240000 -XX:NodeLimitFudgeFactor=8000 -XX:+UseFPUForSpilling -XX:+UseBigDecimalOpt

이것이 기본 인자다.

x86 Java 8 사용자는 다음 인자를 추가로 넣을 수 있다.

-XX:+UseXMMForArrayCopy
-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

JWarmup의 기본 원리: 이전 실행에서 핫 메서드, 클래스 컴파일 순서 등의 정보를 기록해 두었다가, 다음 실행 때 관련 클래스를 미리 로드하고 관련 메서드를 미리 컴파일한다. 그래서 시작 직후부터 컴파일된 Java 코드(C2 컴파일)를 바로 실행할 수 있다.

기록 단계 (보통 beta 환경), 5분 후 profiling data 생성

섹션 제목: “기록 단계 (보통 beta 환경), 5분 후 profiling data 생성”

인자 추가: -XX:-ClassUnloading -XX:-CMSClassUnloadingEnabled -XX:-ClassUnloadingWithConcurrentMark -XX:CompilationWarmUpLogfile=jwarmup.log -XX:+CompilationWarmUpRecording -XX:CompilationWarmUpRecordTime=300

인자 추가: -XX:+CompilationWarmUp -XX:-TieredCompilation -XX:CompilationWarmUpLogfile=jwarmup.log -XX:CompilationWarmUpDeoptTime=0

Java 객체의 메모리 사용량을 10% 정도 줄이고, 프로그램 성능이 좋아질 수도 있다.

-XX:+UseCompactObjectHeaders 인자를 추가한다.

Wisp는 JVM에서 사용자 모드 스레드 구현을 제공한다. Wisp2를 켜면 Java 스레드가 커널 스레드에 1:1로 매핑되지 않고 코루틴에 대응되며, JVM이 적은 수의 커널 스레드 위에서 많은 코루틴을 스케줄링해 커널 스케줄링 부담을 줄인다.

JVM 인자만 추가하면 Wisp2를 켤 수 있고, 프로그램을 고칠 필요가 없다!!

-XX:+UnlockExperimentalVMOptions -XX:+UseWisp2 인자를 추가한다.

G1ElasticHeap은 Java 힙 메모리를 운영체제에 돌려주어 Java 프로세스의 메모리 사용량을 줄이는 GC 기능이다. 켜려면 G1 GC와 함께 다음 옵션을 쓴다.

-XX:+G1ElasticHeap -XX:+ElasticHeapPeriodicUncommit