Byte-Me
FullJEP
JEPMap
JEPSearch
hsdis
JITWatch
JaCoLine
VM Options Explorer
VM Intrinsics Explorer
GC Explorer
Optimizing Java
Thank You!
VM Options Explorer - Switch comparison of OpenJDK21 vs JetBrains Runtime21
OpenJDK HotSpot
Options added/removed between JDKs
OpenJDK options also hosted on
foojay.io
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Alibaba Dragonwell
8
11
17
21
Amazon Corretto
8
11
17
19
20
21
22
24
Azul Systems
Platform Prime
Zulu
8
11
13
15
17
19
8
11
13
15
16
17
18
19
20
21
22
24
BellSoft Liberica
8
11
17
18
19
20
21
22
Eclipse Temurin
8
11
17
18
19
20
21
22
GraalVM 22.3.1
11
17
19
CE
EE
CE
EE
CE
EE
EE-only
EE-only
EE-only
GraalVM native-image 22.3.1
11
17
19
CE
EE
CE
EE
CE
EE
EE-only
EE-only
EE-only
JDK-based GraalVM
17
21
22
24
JDK
Native
JDK
Native
JDK
Native
JDK
Native
JetBrains Runtime
11
17
21
Microsoft
11
16
17
21
OpenJ9
OpenJ9
Oracle
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
SAP SapMachine
11
17
19
20
21
JetBrains Runtime21 changed default values for:
Name
OpenJDK21 value
JetBrains Runtime21 value
GuaranteedSafepointInterval
1000
0
JVMCINativeLibraryThreadFraction
0.33
0.66
ShenandoahImmediateThreshold
90
70
ZFragmentationLimit
0 /* ignored */
5.0
JetBrains Runtime21 added:
AOTAdapterCaching
AOTCache
AOTCacheOutput
AOTCacheParallelRelocation
AOTClassLinking
AOTCodeMaxSize
AOTCompileEagerly
AOTConfiguration
AOTInitTestClass
AOTInvokeDynamicLinking
AOTMode
AOTPrintTrainingInfo
AOTRecordTraining
AOTReplayTraining
AOTStubCaching
AOTVerifyTrainingData
AbortVMOnAOTCodeFailure
AbortVMOnSafepointTimeoutDelay
AlwaysRecordEvolDependencies
AutoVectorizationOverrideProfitability
BinarySearchThreshold
CaptureBailoutInformation
DeoptimizeOnAllocationException
EnableX86ECoreOpts
FullGCHeapDumpLimit
G1GCAllocationFailureALot
G1GCAllocationFailureALotCSetPercent
G1GCAllocationFailureALotCount
G1GCAllocationFailureALotDuringConcMark
G1GCAllocationFailureALotDuringConcurrentStart
G1GCAllocationFailureALotDuringMixedGC
G1GCAllocationFailureALotDuringYoungGC
G1GCAllocationFailureALotInterval
G1NumCodeRootsCostSampleThreshold
G1NumCollectionsKeepPinned
G1OldCSetGroupSize
G1RetainRegionLiveThresholdPercent
JbrShrinkingGcMaxHeapFreeRatio
KillPathsReachableByDeadTypeNode
LibJVMCICompilerThreadHidden
LightweightFastLockingSpins
LogClassLoadingCauseFor
LoopMultiversioning
MaxStringPrintSize
MergeStores
PrintCompilerMemoryStatisticsAtExit
PrintMemoryMapAtExit
PrintPhaseLevel
PrintVMInfoAtExit
ProfileExceptionHandlers
RandomizeClassSpaceLocation
ReduceAllocationMerges
ServiceThreadCleanupInterval
ShenandoahAgingCyclePeriod
ShenandoahAllowOldMarkingPreemption
ShenandoahCardBarrier
ShenandoahCardStatsLogInterval
ShenandoahCoalesceChance
ShenandoahDoNotIgnoreGrowthAfterYoungCycles
ShenandoahEnableCardStats
ShenandoahExpediteMixedThreshold
ShenandoahExpeditePromotionsThreshold
ShenandoahGenerationalAdaptiveTenuring
ShenandoahGenerationalCensusAtEvac
ShenandoahGenerationalCensusIgnoreOlderCohorts
ShenandoahGenerationalHumongousReserve
ShenandoahGenerationalMaxTenuringAge
ShenandoahGenerationalMinTenuringAge
ShenandoahGenerationalTenuringCohortPopulationThreshold
ShenandoahGenerationalTenuringMortalityRateThreshold
ShenandoahGuaranteedOldGCInterval
ShenandoahGuaranteedYoungGCInterval
ShenandoahIgnoreGarbageThreshold
ShenandoahIgnoreOldGrowthBelowPercentage
ShenandoahMaxYoungPercentage
ShenandoahMinOldGenGrowthPercent
ShenandoahMinYoungPercentage
ShenandoahMinimumOldTimeMs
ShenandoahNoProgressThreshold
ShenandoahOldCompactionReserve
ShenandoahOldEvacRatioPercent
ShenandoahOldEvacWaste
ShenandoahOldGarbageThreshold
ShenandoahPromoEvacWaste
SimulateFullAddressSpace
SkipTier2IfPossible
StressBailout
StressBailoutMean
StressLoopPeeling
StressMacroElimination
StressMacroExpansion
StressPrunedExceptionHandlers
StressUnstableIfTraps
SuperWordAutomaticAlignment
TestAOTAdapterLinkFailure
TestingAsyncLoggingDeathTest
TestingAsyncLoggingDeathTestNoCrash
Tier0ProfileDelayFactor
Tier2ProfileDelayFactor
TraceBytecodesStopAt
TraceBytecodesTruncated
TraceLoopMultiversioning
TraceReduceAllocationMerges
TypeProfileSubTypeCheckCommonThreshold
UseAPX
UseCompactObjectHeaders
UseDilithiumIntrinsics
UseIntPolyIntrinsics
UseKyberIntrinsics
UseObjectMonitorTable
UseStoreStoreForCtor
UseThreadsLockThrottleLock
UserThreadWaitAttemptsAtExit
VerifyAlignVector
VerifyConstraintCasts
VerifyInlineCaches
VerifyNoNewIrreducibleLoops
VerifyReduceAllocationMerges
X86ICacheSync
ZFakeNUMA
ZStressFastMediumPageAllocation
ZUseMediumPageSizeRange
JetBrains Runtime21 removed:
AdaptiveSizePolicyCollectionCostMargin
ArrayAllocatorMallocLimit
BaseFootPrintEstimate
DoReserveCopyInSuperWord
ExpandSubTypeCheckAtParseTime
G1EvacuationFailureALot
G1EvacuationFailureALotCSetPercent
G1EvacuationFailureALotCount
G1EvacuationFailureALotDuringConcMark
G1EvacuationFailureALotDuringConcurrentStart
G1EvacuationFailureALotDuringMixedGC
G1EvacuationFailureALotDuringYoungGC
G1EvacuationFailureALotInterval
GCLockerEdenExpansionPercent
GCLockerRetryAllocationCount
HeapFirstMaximumCompactionCount
InitialRAMFraction
InlineCacheBufferSize
LockingMode
MaxGCMinorPauseMillis
MaxRAMFraction
MinRAMFraction
NUMAPageScanRate
OldSize
ParallelOldDeadWoodLimiterMean
ParallelOldDeadWoodLimiterStdDev
PerfDataSamplingInterval
PostLoopMultiversioning
PreserveAllAnnotations
PrintMethodFlushingStatistics
PrintPreciseRTMLockingStatistics
ProcessDistributionStride
RegisterFinalizersAtInit
ScavengeBeforeFullGC
ShenandoahHumongousThreshold
ShenandoahIUBarrier
TLABStats
UseCounterDecay
UseEmptySlotsInSupers
UseHugeTLBFS
UseLinuxPosixThreadCPUClocks
UseNotificationThread
UseOprofile
UseSHM
UseVtableBasedCHA
VerifyGCLevel
VerifyObjectStartArray
VerifyRememberedSets
ZAsyncUnmappingLimit
ZGenerational
ZMarkStackSpaceLimit
ZVerifyViews