VM Options Explorer - SapMachine JDK11


NameSinceDeprecatedTypeOSCPUComponentDefaultAvailabilityDescriptionDefined in
SinceDeprecatedTypeOSCPUComponentAvailability
AOTLibraryccstrlistruntimeNULLexperimental
AOT library
share/runtime/globals.hpp
AVX3Thresholdintx864096
range(0, max_jint)
diagnostic
Minimum array size in bytes to use AVX512 intrinsics
for copy, inflate and fill. When this value is set as zero
compare operations can also use AVX512 intrinsics.
cpu/x86/globals_x86.hpp
AbortVMOnCompilationFailureboolruntimefalsediagnostic
Abort VM when method had failed to compile.
share/runtime/globals.hpp
AbortVMOnExceptionMessageccstrruntimeNULLdiagnostic
Call fatal if the exception pointed by AbortVMOnException 
has this message
share/runtime/globals.hpp
AbortVMOnExceptionccstrruntimeNULLdiagnostic
Call fatal if this exception is thrown. Example: 
java -XX:AbortVMOnException=java.lang.NullPointerException Foo
share/runtime/globals.hpp
AbortVMOnSafepointTimeoutboolruntimefalsediagnostic
Abort upon failure to reach safepoint (see SafepointTimeout)
share/runtime/globals.hpp
AbortVMOnVMOperationTimeoutDelayintxruntime1000
range(0, max_intx)
diagnostic
Delay in milliseconds for option AbortVMOnVMOperationTimeout
share/runtime/globals.hpp
AbortVMOnVMOperationTimeoutboolruntimefalsediagnostic
Abort upon failure to complete VM operation promptly
share/runtime/globals.hpp
ActiveProcessorCountintgc-1product
Specify the CPU count the VM should use and report as active
share/gc/shared/gc_globals.hpp
AdaptiveSizeDecrementScaleFactoruintxgc4
range(1, max_uintx)
product
Adaptive size scale down factor for shrinking
share/gc/shared/gc_globals.hpp
AdaptiveSizeMajorGCDecayTimeScaleuintxgc10
range(0, max_uintx)
product
Time scale over which major costs decay
share/gc/shared/gc_globals.hpp
AdaptiveSizePolicyCollectionCostMarginObsoleted in JDK23
Expired in JDK24
uintxgc50
range(0, 100)
product
If collection costs are within margin, reduce both by full 
delta
share/gc/shared/gc_globals.hpp
AdaptiveSizePolicyGCTimeLimitThresholduintxgc5
range(1, max_uintx)
develop
Number of consecutive collections before gc time limit fires
share/gc/shared/gc_globals.hpp
AdaptiveSizePolicyInitializingStepsuintxgc20
range(0, max_uintx)
product
Number of steps where heuristics is used before data is used
share/gc/shared/gc_globals.hpp
AdaptiveSizePolicyOutputIntervaluintxgc0
range(0, max_uintx)
product
Collection interval for printing information; zero means never
share/gc/shared/gc_globals.hpp
AdaptiveSizePolicyReadyThresholduintxgc5develop
Number of collections before the adaptive sizing is started
share/gc/shared/gc_globals.hpp
AdaptiveSizePolicyWeightuintxgc10
range(0, 100)
product
Weight given to exponential resizing, between 0 and 100
share/gc/shared/gc_globals.hpp
AdaptiveSizeThroughPutPolicyuintxgc0
range(0, 1)
product
Policy for changing generation size for throughput goals
share/gc/shared/gc_globals.hpp
AdaptiveTimeWeightuintxgc25
range(0, 100)
product
Weight given to time in adaptive policy, between 0 and 100
share/gc/shared/gc_globals.hpp
AggressiveHeapboolgcfalseproduct
Optimize heap options for long-running memory intensive apps
share/gc/shared/gc_globals.hpp
AggressiveOptsDeprecated in JDK11
Obsoleted in JDK12
Expired in JDK13
boolruntimefalseproduct
(Deprecated) Enable aggressive optimizations - see arguments.cpp
share/runtime/globals.hpp
AggressiveUnboxingboolc2falseexperimental
Control optimizations for aggressive boxing elimination
share/opto/c2_globals.hpp
AliasLevelDeprecated in JDK19
Obsoleted in JDK20
Expired in JDK21
intxc23
range(0, 3)
product
0 for no aliasing, 1 for oop/field/static/array split, 

2 for class split, 3 for unique instances
share/opto/c2_globals.hpp
AlignVectorboolc2trueproduct
Perform vector store/load alignment in loop
share/opto/c2_globals.hpp
AllocateHeapAtccstrruntimeNULLproduct
Path to the directoy where a temporary file will be created 
to use as the backing store for Java Heap.
share/runtime/globals.hpp
AllocateInstancePrefetchLinesintxruntime1
range(1, 64)
product
Number of lines to prefetch ahead of instance allocation 
pointer
share/runtime/globals.hpp
AllocatePrefetchDistanceintxruntime-1product
Distance to prefetch ahead of allocation pointer. 
-1: use system-specific value (automatically determined
share/runtime/globals.hpp
AllocatePrefetchInstrintxruntime0product
Select instruction to prefetch ahead of allocation pointer
share/runtime/globals.hpp
AllocatePrefetchLinesintxruntime3
range(1, 64)
product
Number of lines to prefetch ahead of array allocation pointer
share/runtime/globals.hpp
AllocatePrefetchStepSizeintxruntime16
range(1, 512)
product
Step size in bytes of sequential prefetch instructions
share/runtime/globals.hpp
AllocatePrefetchStyleintxruntime1
range(0, 3)
product
0 = no prefetch, 

1 = generate prefetch instructions for each allocation, 

2 = use TLAB watermark to gate allocation prefetch, 

3 = generate one prefetch instruction per cache line
share/runtime/globals.hpp
AllowExtshmboolaixfalseproduct
Allow VM to run with EXTSHM=ON.
os/aix/globals_aix.hpp
AllowJNIEnvProxyDeprecated in JDK13
Obsoleted in JDK14
Expired in JDK15
boolruntimefalseproduct
Allow JNIEnv proxies for jdbx
share/runtime/globals.hpp
AllowNonVirtualCallsDeprecated in JDK11
Obsoleted in JDK12
Expired in JDK13
boolruntimefalseproduct
Obey the ACC_SUPER flag and allow invokenonvirtual calls
share/runtime/globals.hpp
AllowParallelDefineClassboolruntimefalseproduct
Allow parallel defineClass requests for class loaders 
registering as parallel capable
share/runtime/globals.hpp
AllowUserSignalHandlersboolruntimefalseproduct
Do not complain if the application installs signal handlers 
(Solaris & Linux only)
share/runtime/globals.hpp
AllowVectorizeOnDemandboolc2trueproduct
Globally supress vectorization set in VectorizeMethod
share/opto/c2_globals.hpp
AlwaysActAsServerClassMachineboolgcfalseproduct
Always act like a server-class machine
share/gc/shared/gc_globals.hpp
AlwaysAtomicAccessesboolruntimefalseexperimental
Accesses to all variables should always be atomic
share/runtime/globals.hpp
AlwaysCompileLoopMethodsboolruntimefalseproduct
When using recompilation, never interpret methods 
containing loops
share/runtime/globals.hpp
AlwaysIncrementalInlineboolc2falsedevelop
do all inlining incrementally
share/opto/c2_globals.hpp
AlwaysLockClassLoaderDeprecated in JDK17
Obsoleted in JDK18
Expired in JDK19
boolruntimefalseproduct
Require the VM to acquire the class loader lock before calling 
loadClass() even for class loaders registering 
as parallel capable
share/runtime/globals.hpp
AlwaysPreTouchboolgcfalseproduct
Force all freshly committed pages to be pre-touched
share/gc/shared/gc_globals.hpp
AlwaysRestoreFPUboolruntimefalseproduct
Restore the FPU control word after every JNI call (expensive)
share/runtime/globals.hpp
AlwaysSafeConstructorsboolruntimefalseexperimental
Force safe construction, as if all fields are final.
share/runtime/globals.hpp
AlwaysTenureboolgcfalseproduct
Always tenure objects in eden (ParallelGC only)
share/gc/shared/gc_globals.hpp
ArrayAllocatorMallocLimitsize_truntimeSOLARIS_ONLY(64*K) NOT_SOLARIS((size_t)-1)experimental
Allocation less than this value will be allocated 
using malloc. Larger allocations will use mmap.
share/runtime/globals.hpp
ArrayCopyLoadStoreMaxElemintxc28
range(0, max_intx)
product
Maximum number of arraycopy elements inlined as a sequence of
loads/stores
share/opto/c2_globals.hpp
ArraycopyDstPrefetchDistanceuintxsparc0product
Distance to prefetch destination array in arraycopy
cpu/sparc/globals_sparc.hpp
ArraycopySrcPrefetchDistanceuintxsparc0product
Distance to prefetch source array in arraycopy
cpu/sparc/globals_sparc.hpp
AssertOnSuspendWaitFailureObsoleted in JDK17
Expired in JDK18
boolruntimefalseproduct
Assert/Guarantee on external suspend wait failure
share/runtime/globals.hpp
AssertRangeCheckEliminationboolc1falsedevelop
Assert Range Check Elimination
share/c1/c1_globals.hpp
AssumeMPDeprecated in JDK10
Obsoleted in JDK12
Expired in JDK13
boolruntimetrueproduct
(Deprecated) Instruct the VM to assume multiple processors are available
share/runtime/globals.hpp
AutoBoxCacheMaxintxc2128
range(0, max_jint)
product
Sets max value cached by the java.lang.Integer autobox cache
share/opto/c2_globals.hpp
AvoidUnalignedAccessesboolaarch64falseproduct
Avoid generating unaligned memory accesses
cpu/aarch64/globals_aarch64.hpp
BCEATraceLevelintxruntime0
range(0, 3)
product
How much tracing to do of bytecode escape analysis estimates 
(0-3)
share/runtime/globals.hpp
BackgroundCompilationboolaarch64truedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
BackgroundCompilationboolarmtruedefine_pd_global
cpu/arm/c2_globals_arm.hpp
BackgroundCompilationboolruntimeproduct_pd
A thread requesting compilation is not blocked during 
compilation
share/runtime/globals.hpp
BackgroundCompilationboolppctruedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
BackgroundCompilationbools390truedefine_pd_global
cpu/s390/c2_globals_s390.hpp
BackgroundCompilationboolsparctruedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
BackgroundCompilationboolx86truedefine_pd_global
cpu/x86/c1_globals_x86.hpp
BailoutAfterHIRboolc1falsedevelop
bailout of compilation after building of HIR
share/c1/c1_globals.hpp
BailoutAfterLIRboolc1falsedevelop
bailout of compilation after building of LIR
share/c1/c1_globals.hpp
BailoutOnExceptionHandlersboolc1falsedevelop
bailout of compilation for methods with exception handlers
share/c1/c1_globals.hpp
BailoutToInterpreterForThrowsboolc2falsedevelop
Compiled methods which throws/catches exceptions will be 
deopt and intp.
share/opto/c2_globals.hpp
BaseFootPrintEstimatesize_tgc256*M
range(0, max_uintx)
product
Estimate of footprint other than Java Heap
share/gc/shared/gc_globals.hpp
BciProfileWidthintxruntime2develop
Number of return bci's to record in ret profile
share/runtime/globals.hpp
BiasedLockingBulkRebiasThresholdDeprecated in JDK15
Obsoleted in JDK18
Expired in JDK19
intxruntime20
range(0, max_intx)
product
Threshold of number of revocations per type to try to 
rebias all objects in the heap of that type
share/runtime/globals.hpp
BiasedLockingBulkRevokeThresholdDeprecated in JDK15
Obsoleted in JDK18
Expired in JDK19
intxruntime40
range(0, max_intx)
product
Threshold of number of revocations per type to permanently 
revoke biases of all objects in the heap of that type
share/runtime/globals.hpp
BiasedLockingDecayTimeDeprecated in JDK15
Obsoleted in JDK18
Expired in JDK19
intxruntime25000
range(500, max_intx)
product
Decay time (in milliseconds) to re-enable bulk rebiasing of a 
type after previous bulk rebias
share/runtime/globals.hpp
BiasedLockingStartupDelayDeprecated in JDK15
Obsoleted in JDK18
Expired in JDK19
intxruntime0
range(0, (intx)(max_jint-(max_jint%PeriodicTask::interval_gran)))
product
Number of milliseconds to wait before enabling biased locking
share/runtime/globals.hpp
BinarySwitchThresholdintxruntime5develop
Minimal number of lookupswitch entries for rewriting to binary 
switch
share/runtime/globals.hpp
BindCMSThreadToCPUboolgcfalsediagnostic
Bind CMS Thread to CPU if possible
share/gc/cms/cms_globals.hpp
BindGCTaskThreadsToCPUsObsoleted in JDK14
Expired in JDK16
boolgcfalseproduct
Bind GCTaskThreads to CPUs if possible
share/gc/shared/gc_globals.hpp
BlockCopyLowLimitintxsparc2048
range(1, max_jint)
product
Minimum size in bytes when block copy will be used
cpu/sparc/globals_sparc.hpp
BlockLayoutByFrequencyboolc2trueproduct
Use edge frequencies to drive block ordering
share/opto/c2_globals.hpp
BlockLayoutMinDiamondPercentageintxc220
range(0, 100)
product
Miniumum %% of a successor (predecessor) for which block 
layout a will allow a fork (join) in a single chain
share/opto/c2_globals.hpp
BlockLayoutRotateLoopsboolc2trueproduct
Allow back branches to be fall throughs in the block layout
share/opto/c2_globals.hpp
BlockOffsetArrayUseUnallocatedBlockboolgcfalsediagnostic
Maintain _unallocated_block in BlockOffsetArray 
(currently applicable only to CMS collector)
share/gc/shared/gc_globals.hpp
BlockZeroingLowLimitintxaarch64256
range(1, max_jint)
product
Minimum size in bytes when block zeroing will be used
cpu/aarch64/globals_aarch64.hpp
BlockZeroingLowLimitintxsparc2048
range(1, max_jint)
product
Minimum size in bytes when block zeroing will be used
cpu/sparc/globals_sparc.hpp
BootstrapJVMCIbooljvmcifalseexperimental
Bootstrap JVMCI before running Java main method
share/jvmci/jvmci_globals.hpp
BranchOnRegisterObsoleted in JDK15
Expired in JDK16
boolc2falseproduct
Use Sparc V9 branch-on-register opcodes
share/opto/c2_globals.hpp
BreakAtNodeintxc20notproduct
Break at construction of this Node (either _idx or _debug_idx)
share/opto/c2_globals.hpp
BreakAtWarningboolruntimefalsedevelop
Execute breakpoint upon encountering VM warning
share/runtime/globals.hpp
BytecodeVerificationLocalboolruntimefalseproduct
Enable the Java bytecode verifier for local classes
share/runtime/globals.hpp
BytecodeVerificationRemoteboolruntimetrueproduct
Enable the Java bytecode verifier for remote classes
share/runtime/globals.hpp
C1Breakpointboolc1falsedevelop
Sets a breakpoint at entry of each compiled method
share/c1/c1_globals.hpp
C1OptimizeVirtualCallProfilingboolc1trueproduct
Use CHA and exact type results at call sites when updating MDOs
share/c1/c1_globals.hpp
C1ProfileBranchesboolc1trueproduct
Profile branches when generating code for updating MDOs
share/c1/c1_globals.hpp
C1ProfileCallsboolc1trueproduct
Profile calls when generating code for updating MDOs
share/c1/c1_globals.hpp
C1ProfileCheckcastsboolc1trueproduct
Profile checkcasts when generating code for updating MDOs
share/c1/c1_globals.hpp
C1ProfileInlinedCallsboolc1trueproduct
Profile inlined calls when generating code for updating MDOs
share/c1/c1_globals.hpp
C1ProfileVirtualCallsboolc1trueproduct
Profile virtual calls when generating code for updating MDOs
share/c1/c1_globals.hpp
C1UpdateMethodDataboolc1trueInTieredproduct
Update MethodData*s in Tier1-generated code
share/c1/c1_globals.hpp
CIBreakAtOSRintxruntime-1develop
The id of osr compilation to break at
share/runtime/globals.hpp
CIBreakAtintxruntime-1develop
The id of compilation to break at
share/runtime/globals.hpp
CICompileNativesboolruntimetruedevelop
compile native methods if supported by the compiler
share/runtime/globals.hpp
CICompileOSRboolaarch64truedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
CICompileOSRboolarmtruedefine_pd_global
cpu/arm/c2_globals_arm.hpp
CICompileOSRboolruntimedevelop_pd
compile on stack replacement methods if supported by the 
compiler
share/runtime/globals.hpp
CICompileOSRboolppctruedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
CICompileOSRbools390truedefine_pd_global
cpu/s390/c2_globals_s390.hpp
CICompileOSRboolsparctruedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
CICompileOSRboolx86truedefine_pd_global
cpu/x86/c1_globals_x86.hpp
CICompilerCountPerCPUboolruntimefalseproduct
1 compiler thread for log(N CPUs)
share/runtime/globals.hpp
CICompilerCountintxruntimeCI_COMPILER_COUNT
range(0, max_jint)
product
Number of compiler threads to run
share/runtime/globals.hpp
CICountOSRboolruntimefalsedevelop
use a separate counter when assigning ids to osr compilations
share/runtime/globals.hpp
CICrashAtintxruntime-1notproduct
id of compilation to trigger assert in compiler thread for 
the purpose of testing, e.g. generation of replay data
share/runtime/globals.hpp
CIFireOOMAtintxruntime-1develop
Fire OutOfMemoryErrors throughout CI for testing the compiler 
(non-negative value throws OOM after this many CI accesses 
in each compile)
share/runtime/globals.hpp
CIObjectFactoryVerifyboolruntimefalsenotproduct
enable potentially expensive verification in ciObjectFactory
share/runtime/globals.hpp
CIPrintCompileQueueboolruntimefalsediagnostic
display the contents of the compile queue whenever a 
compilation is enqueued
share/runtime/globals.hpp
CIPrintCompilerNameboolruntimefalsedevelop
when CIPrint is active, print the name of the active compiler
share/runtime/globals.hpp
CIPrintMethodCodesboolruntimefalsedevelop
print method bytecodes of the compiled code
share/runtime/globals.hpp
CIPrintRequestsboolruntimefalsedevelop
display every request for compilation
share/runtime/globals.hpp
CIPrintTypeFlowboolruntimefalsedevelop
print the results of ciTypeFlow analysis
share/runtime/globals.hpp
CIStartOSRintxruntime0develop
The id of the first osr compilation to permit 
(CICountOSR must be on)
share/runtime/globals.hpp
CIStartintxruntime0develop
The id of the first compilation to permit
share/runtime/globals.hpp
CIStopOSRintxruntimemax_jintdevelop
The id of the last osr compilation to permit 
(CICountOSR must be on)
share/runtime/globals.hpp
CIStopintxruntimemax_jintdevelop
The id of the last compilation to permit
share/runtime/globals.hpp
CITimeEachboolruntimefalsedevelop
display timing information after each successful compilation
share/runtime/globals.hpp
CITimeVerboseboolruntimefalsedevelop
be more verbose in compilation timings
share/runtime/globals.hpp
CITimeboolruntimefalseproduct
collect timing information for compilation
share/runtime/globals.hpp
CITraceTypeFlowboolruntimefalsedevelop
detailed per-bytecode tracing of ciTypeFlow analysis
share/runtime/globals.hpp
CMSAbortSemanticsObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
Whether abort-on-overflow semantics is implemented
share/gc/cms/cms_globals.hpp
CMSAbortablePrecleanMinWorkPerIterationObsoleted in JDK14
Expired in JDK15
uintxgc100
range(0, max_uintx)
product
Nominal minimum work per abortable preclean iteration
share/gc/cms/cms_globals.hpp
CMSAbortablePrecleanWaitMillisintxgc100
range(0, max_intx)
manageable
Time that we sleep between iterations when not given 
enough work per iteration
share/gc/cms/cms_globals.hpp
CMSBitMapYieldQuantumObsoleted in JDK14
Expired in JDK15
size_tgc10*M
range(1, max_uintx)
product
Bitmap operations should process at most this many bits 
between yields
share/gc/cms/cms_globals.hpp
CMSBootstrapOccupancyObsoleted in JDK14
Expired in JDK15
uintxgc50
range(0, 100)
product
Percentage CMS generation occupancy at which to 
initiate CMS collection for bootstrapping collection stats
share/gc/cms/cms_globals.hpp
CMSCheckIntervaluintxgc1000develop
Interval in milliseconds that CMS thread checks if it 
should start a collection cycle
share/gc/cms/cms_globals.hpp
CMSClassUnloadingEnabledObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Whether class unloading enabled when using CMS GC
share/gc/cms/cms_globals.hpp
CMSClassUnloadingMaxIntervalObsoleted in JDK14
Expired in JDK15
uintxgc0
range(0, max_uintx)
product
When CMS class unloading is enabled, the maximum CMS cycle 
count for which classes may not be unloaded
share/gc/cms/cms_globals.hpp
CMSCleanOnEnterObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Clean-on-enter optimization for reducing number of dirty cards
share/gc/cms/cms_globals.hpp
CMSConcMarkMultipleObsoleted in JDK14
Expired in JDK15
size_tgc32
range(1, SIZE_MAX / 4096)
product
Size (in cards) of CMS concurrent MT marking task
share/gc/cms/cms_globals.hpp
CMSConcurrentMTEnabledObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Whether multi-threaded concurrent work enabled 
(effective only if ParNewGC)
share/gc/cms/cms_globals.hpp
CMSCoordinatorYieldSleepCountObsoleted in JDK14
Expired in JDK15
uintxgc10
range(0, max_juint)
product
Number of times the coordinator GC thread will sleep while 
yielding before giving up and resuming GC
share/gc/cms/cms_globals.hpp
CMSEdenChunksRecordAlwaysObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Always record eden chunks used for the parallel initial mark 
or remark of eden
share/gc/cms/cms_globals.hpp
CMSExpAvgFactorObsoleted in JDK14
Expired in JDK15
uintxgc50
range(0, 100)
product
Percentage (0-100) used to weight the current sample when 
computing exponential averages for CMS statistics
share/gc/cms/cms_globals.hpp
CMSExtrapolateSweepObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
CMS: cushion for block demand during sweep
share/gc/cms/cms_globals.hpp
CMSIncrementalSafetyFactorObsoleted in JDK14
Expired in JDK15
uintxgc10
range(0, 100)
product
Percentage (0-100) used to add conservatism when computing the 
duty cycle
share/gc/cms/cms_globals.hpp
CMSIndexedFreeListReplenishObsoleted in JDK14
Expired in JDK15
uintxgc4
range(1, max_uintx)
product
Replenish an indexed free list with this number of chunks
share/gc/cms/cms_globals.hpp
CMSInitiatingOccupancyFractionObsoleted in JDK14
Expired in JDK15
intxgc-1
range(min_intx, 100)
product
Percentage CMS generation occupancy to start a CMS collection 
cycle. A negative value means that CMSTriggerRatio is used
share/gc/cms/cms_globals.hpp
CMSIsTooFullPercentageObsoleted in JDK14
Expired in JDK15
uintxgc98
range(0, 100)
product
An absolute ceiling above which CMS will always consider the 
unloading of classes when class unloading is enabled
share/gc/cms/cms_globals.hpp
CMSLargeCoalSurplusPercentObsoleted in JDK14
Expired in JDK15
doublegc0.95
range(0.0, DBL_MAX)
product
CMS: the factor by which to inflate estimated demand of large 
block sizes to prevent coalescing with an adjoining block
share/gc/cms/cms_globals.hpp
CMSLargeSplitSurplusPercentObsoleted in JDK14
Expired in JDK15
doublegc1.00
range(0.0, DBL_MAX)
product
CMS: the factor by which to inflate estimated demand of large 
block sizes to prevent splitting to supply demand for smaller 
blocks
share/gc/cms/cms_globals.hpp
CMSLoopWarnObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
Warn in case of excessive CMS looping
share/gc/cms/cms_globals.hpp
CMSMarkStackOverflowALotboolgcfalsenotproduct
Simulate frequent marking stack / work queue overflow
share/gc/cms/cms_globals.hpp
CMSMarkStackOverflowIntervaluintxgc1000notproduct
An 'interval' counter that determines how frequently 
to simulate overflow; a smaller number increases frequency
share/gc/cms/cms_globals.hpp
CMSMaxAbortablePrecleanLoopsObsoleted in JDK14
Expired in JDK15
uintxgc0
range(0, max_uintx)
product
Maximum number of abortable preclean iterations, if > 0
share/gc/cms/cms_globals.hpp
CMSMaxAbortablePrecleanTimeObsoleted in JDK14
Expired in JDK15
intxgc5000
range(0, max_intx)
product
Maximum time in abortable preclean (in milliseconds)
share/gc/cms/cms_globals.hpp
CMSOldPLABMaxObsoleted in JDK14
Expired in JDK15
size_tgc1024
range(1, max_uintx)
product
Maximum size of CMS gen promotion LAB caches per worker 
per block size
share/gc/cms/cms_globals.hpp
CMSOldPLABMinObsoleted in JDK14
Expired in JDK15
size_tgc16
range(1, max_uintx)
product
Minimum size of CMS gen promotion LAB caches per worker 
per block size
share/gc/cms/cms_globals.hpp
CMSOldPLABNumRefillsObsoleted in JDK14
Expired in JDK15
uintxgc4
range(1, max_uintx)
product
Nominal number of refills of CMS gen promotion LAB cache 
per worker per block size
share/gc/cms/cms_globals.hpp
CMSOldPLABReactivityFactorObsoleted in JDK14
Expired in JDK15
uintxgc2
range(1, max_uintx)
product
The gain in the feedback loop for on-the-fly PLAB resizing 
during a scavenge
share/gc/cms/cms_globals.hpp
CMSOldPLABResizeQuickerObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
React on-the-fly during a scavenge to a sudden 
change in block demand rate
share/gc/cms/cms_globals.hpp
CMSOldPLABToleranceFactorObsoleted in JDK14
Expired in JDK15
uintxgc4
range(1, max_uintx)
product
The tolerance of the phase-change detector for on-the-fly 
PLAB resizing during a scavenge
share/gc/cms/cms_globals.hpp
CMSPLABRecordAlwaysObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Always record survivor space PLAB boundaries (effective only 
if CMSParallelSurvivorRemarkEnabled)
share/gc/cms/cms_globals.hpp
CMSParallelInitialMarkEnabledObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Use the parallel initial mark.
share/gc/cms/cms_globals.hpp
CMSParallelRemarkEnabledObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Whether parallel remark enabled (only if ParNewGC)
share/gc/cms/cms_globals.hpp
CMSParallelSurvivorRemarkEnabledObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Whether parallel remark of survivor space 
enabled (effective only if CMSParallelRemarkEnabled)
share/gc/cms/cms_globals.hpp
CMSPrecleanDenominatorObsoleted in JDK14
Expired in JDK15
uintxgc3
range(1, max_uintx)
product
CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence 
ratio
share/gc/cms/cms_globals.hpp
CMSPrecleanIterObsoleted in JDK14
Expired in JDK15
uintxgc3
range(0, 9)
product
Maximum number of precleaning iteration passes
share/gc/cms/cms_globals.hpp
CMSPrecleanNumeratorObsoleted in JDK14
Expired in JDK15
uintxgc2
range(0, max_uintx-1)
product
CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence 
ratio
share/gc/cms/cms_globals.hpp
CMSPrecleanRefLists1Obsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Preclean ref lists during (initial) preclean phase
share/gc/cms/cms_globals.hpp
CMSPrecleanRefLists2Obsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
Preclean ref lists during abortable preclean phase
share/gc/cms/cms_globals.hpp
CMSPrecleanSurvivors1Obsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
Preclean survivors during (initial) preclean phase
share/gc/cms/cms_globals.hpp
CMSPrecleanSurvivors2Obsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Preclean survivors during abortable preclean phase
share/gc/cms/cms_globals.hpp
CMSPrecleanThresholdObsoleted in JDK14
Expired in JDK15
uintxgc1000
range(100, max_uintx)
product
Do not iterate again if number of dirty cards is less than this
share/gc/cms/cms_globals.hpp
CMSPrecleaningEnabledObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Whether concurrent precleaning enabled
share/gc/cms/cms_globals.hpp
CMSPrintChunksInDumpObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
If logging for the 'gc' and 'promotion' tags is enabled on
trace level include more detailed information about the
free chunks
share/gc/cms/cms_globals.hpp
CMSPrintObjectsInDumpObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
If logging for the 'gc' and 'promotion' tags is enabled on
trace level include more detailed information about the
allocated objects
share/gc/cms/cms_globals.hpp
CMSRemarkVerifyVariantObsoleted in JDK14
Expired in JDK15
uintxgc1
range(1, 2)
product
Choose variant (1,2) of verification following remark
share/gc/cms/cms_globals.hpp
CMSReplenishIntermediateObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Replenish all intermediate free-list caches
share/gc/cms/cms_globals.hpp
CMSRescanMultipleObsoleted in JDK14
Expired in JDK15
size_tgc32
range(1, SIZE_MAX / 4096)
product
Size (in cards) of CMS parallel rescan task
share/gc/cms/cms_globals.hpp
CMSSamplingGrainObsoleted in JDK14
Expired in JDK15
uintxgc16*K
range(ObjectAlignmentInBytes, max_uintx)
product
The minimum distance between eden samples for CMS (see above)
share/gc/cms/cms_globals.hpp
CMSScavengeBeforeRemarkObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
Attempt scavenge before the CMS remark step
share/gc/cms/cms_globals.hpp
CMSScheduleRemarkEdenPenetrationObsoleted in JDK14
Expired in JDK15
uintxgc50
range(0, 100)
product
The Eden occupancy percentage (0-100) at which 
to try and schedule remark pause
share/gc/cms/cms_globals.hpp
CMSScheduleRemarkEdenSizeThresholdObsoleted in JDK14
Expired in JDK15
size_tgc2*M
range(0, max_uintx)
product
If Eden size is below this, do not try to schedule remark
share/gc/cms/cms_globals.hpp
CMSScheduleRemarkSamplingRatioObsoleted in JDK14
Expired in JDK15
uintxgc5
range(1, max_uintx)
product
Start sampling eden top at least before young gen 
occupancy reaches 1/ of the size at which 
we plan to schedule remark
share/gc/cms/cms_globals.hpp
CMSSmallCoalSurplusPercentObsoleted in JDK14
Expired in JDK15
doublegc1.05
range(0.0, DBL_MAX)
product
CMS: the factor by which to inflate estimated demand of small 
block sizes to prevent coalescing with an adjoining block
share/gc/cms/cms_globals.hpp
CMSSmallSplitSurplusPercentObsoleted in JDK14
Expired in JDK15
doublegc1.10
range(0.0, DBL_MAX)
product
CMS: the factor by which to inflate estimated demand of small 
block sizes to prevent splitting to supply demand for smaller 
blocks
share/gc/cms/cms_globals.hpp
CMSSplitIndexedFreeListBlocksObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
When satisfying batched demand, split blocks from the 
IndexedFreeList whose size is a multiple of requested size
share/gc/cms/cms_globals.hpp
CMSTestInFreeListboolgcfalsedevelop
Check if the coalesced range is already in the 
free lists as claimed
share/gc/cms/cms_globals.hpp
CMSTriggerIntervalintxgc-1
range(-1, max_intx)
manageable
Commence a CMS collection cycle (at least) every so many 
milliseconds (0 permanently, -1 disabled)
share/gc/cms/cms_globals.hpp
CMSTriggerRatioObsoleted in JDK14
Expired in JDK15
uintxgc80
range(0, 100)
product
Percentage of MinHeapFreeRatio in CMS generation that is 
allocated before a CMS collection cycle commences
share/gc/cms/cms_globals.hpp
CMSVerifyReturnedBytesboolgcfalsenotproduct
Check that all the garbage collected was returned to the 
free lists
share/gc/cms/cms_globals.hpp
CMSWaitDurationintxgc2000
range(min_jint, max_jint)
manageable
Time in milliseconds that CMS thread waits for young GC
share/gc/cms/cms_globals.hpp
CMSWorkQueueDrainThresholdObsoleted in JDK14
Expired in JDK15
uintxgc10
range(1, max_juint)
product
Don't drain below this size per parallel worker/thief
share/gc/cms/cms_globals.hpp
CMSYieldSleepCountObsoleted in JDK14
Expired in JDK15
uintxgc0
range(0, max_juint)
product
Number of times a GC thread (minus the coordinator) 
will sleep while yielding before giving up and resuming GC
share/gc/cms/cms_globals.hpp
CMSYieldObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Yield between steps of CMS
share/gc/cms/cms_globals.hpp
CMSYoungGenPerWorkerObsoleted in JDK14
Expired in JDK15
uintxaarch6464*Mdefine_pd_global
// default max size of CMS young gen, per GC worker thread
cpu/aarch64/globals_aarch64.hpp
CMSYoungGenPerWorkerObsoleted in JDK14
Expired in JDK15
size_tarm16*Mdefine_pd_global
// default max size of CMS young gen, per GC worker thread
cpu/arm/globals_arm.hpp
CMSYoungGenPerWorkerObsoleted in JDK14
Expired in JDK15
size_tgcproduct_pd
The maximum size of young gen chosen by default per GC worker 
thread available
share/gc/cms/cms_globals.hpp
CMSYoungGenPerWorkerObsoleted in JDK14
Expired in JDK15
size_tppc16*Mdefine_pd_global
// Default max size of CMS young gen, per GC worker thread.
cpu/ppc/globals_ppc.hpp
CMSYoungGenPerWorkerObsoleted in JDK14
Expired in JDK15
size_ts39016*Mdefine_pd_global
// Default max size of CMS young gen, per GC worker thread.
cpu/s390/globals_s390.hpp
CMSYoungGenPerWorkerObsoleted in JDK14
Expired in JDK15
size_tsparc16*Mdefine_pd_global
// default max size of CMS young gen, per GC worker thread
cpu/sparc/globals_sparc.hpp
CMSYoungGenPerWorkerObsoleted in JDK14
Expired in JDK15
size_tx8664*Mdefine_pd_global
// default max size of CMS young gen, per GC worker thread
cpu/x86/globals_x86.hpp
CMSYoungGenPerWorkerObsoleted in JDK14
Expired in JDK15
size_tzero16*Mdefine_pd_global
// default max size of CMS young gen, per GC worker thread
cpu/zero/globals_zero.hpp
CMS_FLSPaddingObsoleted in JDK14
Expired in JDK15
uintxgc1
range(0, max_juint)
product
The multiple of deviation from mean to use for buffering 
against volatility in free list demand
share/gc/cms/cms_globals.hpp
CMS_FLSWeightObsoleted in JDK14
Expired in JDK15
uintxgc75
range(0, 100)
product
Percentage (0-100) used to weight the current sample when 
computing exponentially decaying averages for CMS FLS 
statistics
share/gc/cms/cms_globals.hpp
CMS_SweepPaddingObsoleted in JDK14
Expired in JDK15
uintxgc1
range(0, max_juint)
product
The multiple of deviation from mean to use for buffering 
against volatility in inter-sweep duration
share/gc/cms/cms_globals.hpp
CMS_SweepTimerThresholdMillisObsoleted in JDK14
Expired in JDK15
uintxgc10
range(0, max_uintx)
product
Skip block flux-rate sampling for an epoch unless inter-sweep 
duration exceeds this threshold in milliseconds
share/gc/cms/cms_globals.hpp
CMS_SweepWeightObsoleted in JDK14
Expired in JDK15
uintxgc75
range(0, 100)
product
Percentage (0-100) used to weight the current sample when 
computing exponentially decaying average for inter-sweep 
duration
share/gc/cms/cms_globals.hpp
CPUForCMSThreaduintxgc0
range(0, max_juint)
diagnostic
When BindCMSThreadToCPU is true, the CPU to bind CMS thread to
share/gc/cms/cms_globals.hpp
CSEArrayLengthboolaarch64falsedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
CSEArrayLengthboolarmtruedefine_pd_global
cpu/arm/c1_globals_arm.hpp
CSEArrayLengthboolc1develop_pd
Create separate nodes for length in array accesses
share/c1/c1_globals.hpp
CSEArrayLengthboolppctruedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
CSEArrayLengthbools390truedefine_pd_global
cpu/s390/c1_globals_s390.hpp
CSEArrayLengthboolsparctruedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
CSEArrayLengthboolx86falsedefine_pd_global
cpu/x86/c1_globals_x86.hpp
CalculateClassFingerprintboolruntimefalseproduct
Calculate class fingerprint
share/runtime/globals.hpp
CanonicalizeNodesboolc1truedevelop
Canonicalize graph nodes
share/c1/c1_globals.hpp
CheckCompressedOopsboolruntimetruenotproduct
Generate checks in encoding/decoding code in debug VM
share/runtime/globals.hpp
CheckIntrinsicsboolruntimetruediagnostic
When a class C is loaded, check that 
(1) all intrinsics defined by the VM for class C are present 
in the loaded class file and are marked with the 
@HotSpotIntrinsicCandidate annotation, that 
(2) there is an intrinsic registered for all loaded methods 
that are annotated with the @HotSpotIntrinsicCandidate 
annotation, and that 
(3) no orphan methods exist for class C (i.e., methods for 
which the VM declares an intrinsic but that are not declared 
in the loaded class C. 
Check (3) is available only in debug builds.
share/runtime/globals.hpp
CheckJNICallsboolruntimefalseproduct
Verify all arguments to JNI calls
share/runtime/globals.hpp
CheckMemoryInitializationboolruntimefalsenotproduct
Check memory initialization
share/runtime/globals.hpp
CheckUnhandledOopsboolruntimefalsedevelop
Check for unhandled oops in VM code
share/runtime/globals.hpp
CheckZapUnusedHeapAreaboolruntimefalsedevelop
Check zapping of unused heap space
share/runtime/globals.hpp
ClassUnloadingWithConcurrentMarkboolruntimetrueproduct
Do unloading of classes with a concurrent marking cycle
share/runtime/globals.hpp
ClassUnloadingboolruntimetrueproduct
Do unloading of classes
share/runtime/globals.hpp
CleanChunkPoolAsyncboolruntimetruedevelop
Clean the chunk pool asynchronously
share/runtime/globals.hpp
ClipInliningboolruntimetrueproduct
Clip inlining if aggregate method exceeds DesiredMethodLimit
share/runtime/globals.hpp
CodeCacheExpansionSizeintxaarch6432*Kdefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
CodeCacheExpansionSizesize_tarm32*Kdefine_pd_global
cpu/arm/c1_globals_arm.hpp
CodeCacheExpansionSizeuintxruntimeproduct_pd
Code cache expansion size (in bytes)
share/runtime/globals.hpp
CodeCacheExpansionSizeuintxppc32*Kdefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
CodeCacheExpansionSizeuintxs39064*Kdefine_pd_global
cpu/s390/c2_globals_s390.hpp
CodeCacheExpansionSizeuintxsparc32*Kdefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
CodeCacheExpansionSizeuintxx8632*Kdefine_pd_global
cpu/x86/c1_globals_x86.hpp
CodeCacheMinBlockLengthuintxaarch641define_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
CodeCacheMinBlockLengthuintxarm1define_pd_global
cpu/arm/c1_globals_arm.hpp
CodeCacheMinBlockLengthuintxruntimediagnostic_pd
Minimum number of segments in a code cache block
share/runtime/globals.hpp
CodeCacheMinBlockLengthuintxppc1define_pd_global
cpu/ppc/c1_globals_ppc.hpp
CodeCacheMinBlockLengthuintxs3904define_pd_global
cpu/s390/c2_globals_s390.hpp
CodeCacheMinBlockLengthuintxsparc1define_pd_global
cpu/sparc/c1_globals_sparc.hpp
CodeCacheMinBlockLengthuintxx861define_pd_global
cpu/x86/c1_globals_x86.hpp
CodeCacheMinimumUseSpaceuintxaarch64400*Kdefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
CodeCacheMinimumUseSpacesize_tarm400*Kdefine_pd_global
cpu/arm/c1_globals_arm.hpp
CodeCacheMinimumUseSpaceuintxruntimedevelop_pd
Minimum code cache size (in bytes) required to start VM.
share/runtime/globals.hpp
CodeCacheMinimumUseSpaceuintxppc400*Kdefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
CodeCacheMinimumUseSpaceuintxs390400*Kdefine_pd_global
cpu/s390/c2_globals_s390.hpp
CodeCacheMinimumUseSpaceuintxsparc400*Kdefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
CodeCacheMinimumUseSpaceuintxx86400*Kdefine_pd_global
cpu/x86/c1_globals_x86.hpp
CodeCacheSegmentSizeuintxaarch6464 TIERED_ONLY(+64)define_pd_global
// Tiered compilation has large code-entry alignment.
cpu/aarch64/globals_aarch64.hpp
CodeCacheSegmentSizeuintxarm64 TIERED_ONLY(+64)define_pd_global
// Tiered compilation has large code-entry alignment.
cpu/arm/globals_arm.hpp
CodeCacheSegmentSizeuintxruntimedevelop_pd
Code cache segment size (in bytes) - smallest unit of 
allocation
share/runtime/globals.hpp
CodeCacheSegmentSizeuintxppc128define_pd_global
cpu/ppc/globals_ppc.hpp
CodeCacheSegmentSizeuintxs390256define_pd_global
cpu/s390/globals_s390.hpp
CodeCacheSegmentSizeuintxsparc64 TIERED_ONLY(+64)define_pd_global
// Tiered compilation has large code-entry alignment.
cpu/sparc/globals_sparc.hpp
CodeCacheSegmentSizeuintxx8664 TIERED_ONLY(+64)define_pd_global
// Tiered compilation has large code-entry alignment.
cpu/x86/globals_x86.hpp
CodeCacheSegmentSizeuintxzero64 TIERED_ONLY(+64)define_pd_global
// Tiered compilation has large code-entry alignment.
cpu/zero/globals_zero.hpp
CodeEntryAlignmentintxaarch6464define_pd_global
cpu/aarch64/globals_aarch64.hpp
CodeEntryAlignmentintxarm16define_pd_global
cpu/arm/globals_arm.hpp
CodeEntryAlignmentintxruntimedevelop_pd
Code entry alignment for generated code (in bytes)
share/runtime/globals.hpp
CodeEntryAlignmentintxppc128define_pd_global
cpu/ppc/globals_ppc.hpp
CodeEntryAlignmentintxs39064define_pd_global
cpu/s390/globals_s390.hpp
CodeEntryAlignmentintxsparc32define_pd_global
cpu/sparc/globals_sparc.hpp
CodeEntryAlignmentintxx8616define_pd_global
cpu/x86/globals_x86.hpp
CodeEntryAlignmentintxzero32define_pd_global
cpu/zero/globals_zero.hpp
CollectIndexSetStatisticsboolruntimefalsenotproduct
Collect information about IndexSets
share/runtime/globals.hpp
CommentedAssemblyboolc1trueInDebugdevelop
Show extra info in PrintNMethods output
share/c1/c1_globals.hpp
CompactFieldsDeprecated in JDK14
Obsoleted in JDK15
Expired in JDK16
boolruntimetrueproduct
Allocate nonstatic fields in gaps between previous fields
share/runtime/globals.hpp
CompactStringsboolaarch64truedefine_pd_global
cpu/aarch64/globals_aarch64.hpp
CompactStringsboolarmfalsedefine_pd_global
cpu/arm/globals_arm.hpp
CompactStringsboolruntimeproduct_pd
Enable Strings to use single byte chars in backing store
share/runtime/globals.hpp
CompactStringsboolppctruedefine_pd_global
cpu/ppc/globals_ppc.hpp
CompactStringsbools390truedefine_pd_global
cpu/s390/globals_s390.hpp
CompactStringsboolsparctruedefine_pd_global
cpu/sparc/globals_sparc.hpp
CompactStringsboolx86truedefine_pd_global
cpu/x86/globals_x86.hpp
CompactStringsboolzerotruedefine_pd_global
cpu/zero/globals_zero.hpp
CompilationPolicyChoiceDeprecated in JDK13
Obsoleted in JDK14
Expired in JDK15
intxruntime0
range(0, 2)
product
which compilation policy (0-2)
share/runtime/globals.hpp
CompileCommandFileccstrruntimeNULLproduct
Read compiler commands from this file [.hotspot_compiler]
share/runtime/globals.hpp
CompileCommandccstrlistruntime
product
Prepend to .hotspot_compiler; e.g. log,java/lang/String.
share/runtime/globals.hpp
CompileOnlyccstrlistruntime
product
List of methods (pkg/class.name) to restrict compilation to
share/runtime/globals.hpp
CompileTheWorldPreloadClassesboolruntimetruedevelop
Preload all classes used by a class before start loading
share/runtime/globals.hpp
CompileTheWorldSafepointIntervalintxruntime100notproduct
Force a safepoint every n compiles so sweeper can keep up
share/runtime/globals.hpp
CompileTheWorldStartAtintxruntime1notproduct
First class to consider when using +CompileTheWorld
share/runtime/globals.hpp
CompileTheWorldStopAtintxruntimemax_jintnotproduct
Last class to consider when using +CompileTheWorld
share/runtime/globals.hpp
CompileTheWorldboolruntimefalsedevelop
Compile all methods in all classes in bootstrap class path 
(stress test)
share/runtime/globals.hpp
CompileThresholdScalingdoubleruntime1.0
range(0.0, DBL_MAX)
product
Factor to control when first compilation happens 
(both with and without tiered compilation): 
values greater than 1.0 delay counter overflow, 
values between 0 and 1.0 rush counter overflow, 
value of 1.0 leaves compilation thresholds unchanged 
value of 0.0 is equivalent to -Xint. 

Flag can be set as per-method option. 
If a value is specified for a method, compilation thresholds 
for that method are scaled by both the value of the global flag 
and the value of the per-method flag.
share/runtime/globals.hpp
CompileThresholdintxaarch641500define_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
CompileThresholdintxarm10000define_pd_global
cpu/arm/c2_globals_arm.hpp
CompileThresholdintxruntimeproduct_pd
number of interpreted method invocations before (re-)compiling
share/runtime/globals.hpp
CompileThresholdintxppc1000define_pd_global
cpu/ppc/c1_globals_ppc.hpp
CompileThresholdintxs39010000define_pd_global
cpu/s390/c2_globals_s390.hpp
CompileThresholdintxsparc1000define_pd_global
// Design center runs on 1.3.1
cpu/sparc/c1_globals_sparc.hpp
CompileThresholdintxx861500define_pd_global
cpu/x86/c1_globals_x86.hpp
CompilerDirectivesFileccstrruntimeNULLdiagnostic
Read compiler directives from this file
share/runtime/globals.hpp
CompilerDirectivesIgnoreCompileCommandsboolruntimefalsediagnostic
Disable backwards compatibility for compile commands.
share/runtime/globals.hpp
CompilerDirectivesLimitintruntime50diagnostic
Limit on number of compiler directives.
share/runtime/globals.hpp
CompilerDirectivesPrintboolruntimefalsediagnostic
Print compiler directives on installation.
share/runtime/globals.hpp
CompilerThreadHintNoPreemptDeprecated in JDK11
Obsoleted in JDK12
Expired in JDK13
boolruntimefalseproduct
(Solaris only) Give compiler threads an extra quanta
share/runtime/globals.hpp
CompilerThreadPriorityintxruntime-1
range(min_jint, max_jint)
product
The native priority at which compiler threads should run 
(-1 means no change)
share/runtime/globals.hpp
CompilerThreadStackSizeintxaixppc4096define_pd_global
os_cpu/aix_ppc/globals_aix_ppc.hpp
CompilerThreadStackSizeintxbsdaarch642048define_pd_global
os_cpu/bsd_aarch64/globals_bsd_aarch64.hpp
CompilerThreadStackSizeintxbsdx86512define_pd_global
os_cpu/bsd_x86/globals_bsd_x86.hpp
CompilerThreadStackSizeintxbsdzero0define_pd_global
os_cpu/bsd_zero/globals_bsd_zero.hpp
CompilerThreadStackSizeintxlinuxaarch642048define_pd_global
os_cpu/linux_aarch64/globals_linux_aarch64.hpp
CompilerThreadStackSizeintxlinuxarm512define_pd_global
os_cpu/linux_arm/globals_linux_arm.hpp
CompilerThreadStackSizeintxlinuxppc4096define_pd_global
os_cpu/linux_ppc/globals_linux_ppc.hpp
CompilerThreadStackSizeintxlinuxs3902048define_pd_global
os_cpu/linux_s390/globals_linux_s390.hpp
CompilerThreadStackSizeintxlinuxx86512define_pd_global
os_cpu/linux_x86/globals_linux_x86.hpp
CompilerThreadStackSizeintxlinuxzero0define_pd_global
os_cpu/linux_zero/globals_linux_zero.hpp
CompilerThreadStackSizeintxruntimeproduct_pd
Compiler Thread Stack Size (in Kbytes)
share/runtime/globals.hpp
CompilerThreadStackSizeintxsparc1024define_pd_global
cpu/sparc/globals_sparc.hpp
CompilerThreadStackSizeintxsolarisx86512define_pd_global
os_cpu/solaris_x86/globals_solaris_x86.hpp
CompilerThreadStackSizeintxwindowsaarch640define_pd_global
os_cpu/windows_aarch64/globals_windows_aarch64.hpp
CompilerThreadStackSizeintxwindowsx860define_pd_global
os_cpu/windows_x86/globals_windows_x86.hpp
CompressedClassSpaceSizesize_truntime1*G
range(1*M, 3*G)
product
Maximum size of class area in Metaspace when compressed 
class pointers are used
share/runtime/globals.hpp
ComputeExactFPURegisterUsageboolc1truedevelop
Compute additional live set for fpu registers to simplify fpu stack merge (Intel only)
share/c1/c1_globals.hpp
ConcGCThreadsuintgc0product
Number of threads concurrent gc will use
share/gc/shared/gc_globals.hpp
ConcGCYieldTimeoutintxgc0
range(0, max_intx)
develop
If non-zero, assert that GC threads yield within this 
number of milliseconds
share/gc/shared/gc_globals.hpp
ConditionalMoveLimitintxaarch643define_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
ConditionalMoveLimitintxarm4define_pd_global
cpu/arm/c2_globals_arm.hpp
ConditionalMoveLimitintxc2product_pd
Limit of ops to make speculative when using CMOVE
share/opto/c2_globals.hpp
ConditionalMoveLimitintxppc3define_pd_global
cpu/ppc/c2_globals_ppc.hpp
ConditionalMoveLimitintxs3904define_pd_global
cpu/s390/c2_globals_s390.hpp
ConditionalMoveLimitintxsparc4define_pd_global
cpu/sparc/c2_globals_sparc.hpp
ConditionalMoveLimitintxx863define_pd_global
cpu/x86/c2_globals_x86.hpp
ContendedPaddingWidthintxruntime128
range(0, 8192)
product
How many bytes to pad the fields/classes marked @Contended with
share/runtime/globals.hpp
ConvertCmpD2CmpFboolc2truedevelop
Convert cmpD to cmpF when one input is constant in float range
share/opto/c2_globals.hpp
ConvertFloat2IntClippingboolc2truedevelop
Convert float2int clipping idiom to integer clipping
share/opto/c2_globals.hpp
CountBytecodesboolruntimefalsedevelop
Count number of bytecodes executed
share/runtime/globals.hpp
CountCompiledCallsboolruntimefalsedevelop
Count method invocations
share/runtime/globals.hpp
CountJNICallsboolruntimefalsedevelop
Count jni method invocations
share/runtime/globals.hpp
CountJVMCallsboolruntimefalsenotproduct
Count jvm method invocations
share/runtime/globals.hpp
CountLinearScanboolc1falsedevelop
collect statistic counters during LinearScan
share/c1/c1_globals.hpp
CountRemovableExceptionsboolruntimefalsenotproduct
Count exceptions that could be replaced by branches due to 
inlining
share/runtime/globals.hpp
CountRuntimeCallsboolruntimefalsenotproduct
Count VM runtime calls
share/runtime/globals.hpp
CounterDecayMinIntervalLengthintxruntime500develop
The minimum interval (in milliseconds) between invocation of 
CounterDecay
share/runtime/globals.hpp
CounterHalfLifeTimeintxruntime30develop
Half-life time of invocation counters (in seconds)
share/runtime/globals.hpp
CrashGCForDumpingJavaThreadboolruntimefalsenotproduct
Manually make GC thread crash then dump java stack trace; 
Test only
share/runtime/globals.hpp
CrashOnOutOfMemoryErrorboolruntimefalseproduct
JVM aborts, producing an error log and core/mini dump, on the 
first occurrence of an out-of-memory error
share/runtime/globals.hpp
CreateCoredumpOnCrashboolruntimetrueproduct
Create core/mini dump on VM fatal error
share/runtime/globals.hpp
CriticalJNINativesDeprecated in JDK16
Obsoleted in JDK18
Expired in JDK19
boolruntimetrueproduct
Check for critical JNI entry points
share/runtime/globals.hpp
DSCR_DPFD_PPC64uint64_tppc8product
Power8 or later: DPFD (default prefetch depth) value of the 
Data Stream Control Register.
 0: hardware default, 1: none, 2-7: min-max, 8: don't touch
cpu/ppc/globals_ppc.hpp
DSCR_PPC64uint64_tppc(uintx)-1product
Power8 or later: Specify encoded value for Data Stream Control 
Register
cpu/ppc/globals_ppc.hpp
DSCR_URG_PPC64uint64_tppc8product
Power8 or later: URG (depth attainment urgency) value of the 
Data Stream Control Register.
 0: hardware default, 1: none, 2-7: min-max, 8: don't touch
cpu/ppc/globals_ppc.hpp
DTraceAllocProbesboolruntimefalseproduct
Enable dtrace probes for object allocation
share/runtime/globals.hpp
DTraceMethodProbesboolruntimefalseproduct
Enable dtrace probes for method-entry and method-exit
share/runtime/globals.hpp
DTraceMonitorProbesboolruntimefalseproduct
Enable dtrace probes for monitor events
share/runtime/globals.hpp
DebugDeoptimizationboolruntimefalsedevelop
Tracing various information while debugging deoptimization
share/runtime/globals.hpp
DebugInlinedCallsboolc2truediagnostic
If false, restricts profiled locations to the root method only
share/opto/c2_globals.hpp
DebugNonSafepointsboolruntimetrueInDebugdiagnostic
Generate extra debugging information for non-safepoints in 
nmethods
share/runtime/globals.hpp
DebugVtablesboolruntimefalsedevelop
add debugging code to vtable dispatch
share/runtime/globals.hpp
DebuggingObsoleted in JDK16
Expired in JDK17
boolruntimefalseproduct
Set when executing debug methods in debug.cpp 
(to prevent triggering assertions)
share/runtime/globals.hpp
DeferInitialCardMarkboolgcfalsediagnostic
When +ReduceInitialCardMarks, explicitly defer any that 
may arise from new_pre_store_barrier
share/gc/shared/gc_globals.hpp
DelayCompilationDuringStartupboolruntimetruedevelop
Delay invoking the compiler until main application class is 
loaded
share/runtime/globals.hpp
DeoptC1boolc1truedevelop
Use deoptimization in C1
share/c1/c1_globals.hpp
DeoptimizeALotIntervalintxruntime5notproduct
Number of exits until DeoptimizeALot kicks in
share/runtime/globals.hpp
DeoptimizeALotboolruntimefalsedevelop
Deoptimize at every exit from the runtime system
share/runtime/globals.hpp
DeoptimizeOnlyAtccstrlistruntime
notproduct
A comma separated list of bcis to deoptimize at
share/runtime/globals.hpp
DeoptimizeRandomboolruntimefalseproduct
Deoptimize random frames on random exit from the runtime system
share/runtime/globals.hpp
DesiredMethodLimitintxruntime8000develop
The desired maximum method size (in bytecodes) after inlining
share/runtime/globals.hpp
DisableAttachMechanismboolruntimefalseproduct
Disable mechanism that allows tools to attach to this VM
share/runtime/globals.hpp
DisableExplicitGCboolgcfalseproduct
Ignore calls to System.gc()
share/gc/shared/gc_globals.hpp
DisableIntrinsicccstrlistruntime
diagnostic
do not expand intrinsics whose (internal) names appear here
share/runtime/globals.hpp
DisablePrimordialThreadGuardPagesboolruntimefalseexperimental
Disable the use of stack guard pages if the JVM is loaded 
on the primordial process thread
share/runtime/globals.hpp
DisableStartThreadboolruntimefalsedevelop
Disable starting of additional Java threads 
(for debugging only)
share/runtime/globals.hpp
DisplayVMOutputToStderrboolruntimefalseproduct
If DisplayVMOutput is true, display all VM output to stderr
share/runtime/globals.hpp
DisplayVMOutputToStdoutboolruntimefalseproduct
If DisplayVMOutput is true, display all VM output to stdout
share/runtime/globals.hpp
DisplayVMOutputboolruntimetruediagnostic
Display all VM output on the tty, independently of LogVMOutput
share/runtime/globals.hpp
DoCEEboolc1truedevelop
Do Conditional Expression Elimination to simplify CFG
share/c1/c1_globals.hpp
DoEscapeAnalysisboolc2trueproduct
Perform escape analysis
share/opto/c2_globals.hpp
DoReserveCopyInSuperWordObsoleted in JDK22
Expired in JDK23
boolc2trueproduct
Create reserve copy of graph in SuperWord.
share/opto/c2_globals.hpp
DominatorSearchLimitintxc21000
range(0, max_jint)
diagnostic
Iterations limit in Node::dominates
share/opto/c2_globals.hpp
DontCompileHugeMethodsboolruntimetrueproduct
Do not compile methods > HugeMethodLimit
share/runtime/globals.hpp
DontYieldALotIntervalintxruntime10develop
Interval between which yields will be dropped (milliseconds)
share/runtime/globals.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolaixppcfalsedefine_pd_global
os_cpu/aix_ppc/globals_aix_ppc.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolbsdaarch64falsedefine_pd_global
os_cpu/bsd_aarch64/globals_bsd_aarch64.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolbsdx86falsedefine_pd_global
os_cpu/bsd_x86/globals_bsd_x86.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolbsdzerofalsedefine_pd_global
os_cpu/bsd_zero/globals_bsd_zero.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boollinuxaarch64falsedefine_pd_global
os_cpu/linux_aarch64/globals_linux_aarch64.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boollinuxarmfalsedefine_pd_global
os_cpu/linux_arm/globals_linux_arm.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boollinuxppcfalsedefine_pd_global
os_cpu/linux_ppc/globals_linux_ppc.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boollinuxs390falsedefine_pd_global
os_cpu/linux_s390/globals_linux_s390.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boollinuxx86falsedefine_pd_global
os_cpu/linux_x86/globals_linux_x86.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boollinuxzerofalsedefine_pd_global
os_cpu/linux_zero/globals_linux_zero.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolruntimeproduct_pd
Throw away obvious excess yield calls
share/runtime/globals.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolsparctruedefine_pd_global
// yield no more than 100 times per second
cpu/sparc/globals_sparc.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolsolarisx86truedefine_pd_global
// Determined in the design center
os_cpu/solaris_x86/globals_solaris_x86.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolwindowsaarch64falsedefine_pd_global
os_cpu/windows_aarch64/globals_windows_aarch64.hpp
DontYieldALotDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolwindowsx86falsedefine_pd_global
os_cpu/windows_x86/globals_windows_x86.hpp
DumpLoadedClassListccstrruntimeNULLproduct
Dump the names all loaded classes, that could be stored into 
the CDS archive, in the specified file
share/runtime/globals.hpp
DumpPrivateMappingsInCoreboollinuxtruediagnostic
If true, sets bit 2 of /proc/PID/coredump_filter, thus 
resulting in file-backed private mappings of the process to 
be dumped into the corefile.
os/linux/globals_linux.hpp
DumpReplayDataOnErrorboolruntimetrueproduct
Record replay data for crashing compiler threads
share/runtime/globals.hpp
DumpSharedMappingsInCoreboollinuxtruediagnostic
If true, sets bit 3 of /proc/PID/coredump_filter, thus 
resulting in file-backed shared mappings of the process to 
be dumped into the corefile.
os/linux/globals_linux.hpp
DumpSharedSpacesDeprecated in JDK18
Obsoleted in JDK19
boolruntimefalseproduct
Special mode: JVM reads a class list, loads classes, builds 
shared spaces, and dumps the shared spaces to a file to be 
used in future JVM runs
share/runtime/globals.hpp
DynamicallyResizeSystemDictionariesboolruntimetruediagnostic
Dynamically resize system dictionaries as needed
share/runtime/globals.hpp
EagerInitializationboolruntimefalsedevelop
Eagerly initialize classes if possible
share/runtime/globals.hpp
EagerJVMCIbooljvmcifalseexperimental
Force eager JVMCI initialization
share/jvmci/jvmci_globals.hpp
EagerXrunInitboolruntimefalseproduct
Eagerly initialize -Xrun libraries; allows startup profiling, 
but not all -Xrun libraries may support the state of the VM 
at this time
share/runtime/globals.hpp
EliminateAllocationArraySizeLimitintxc264
range(0, max_jint)
product
Array size (number of elements) limit for scalar replacement
share/opto/c2_globals.hpp
EliminateAllocationsboolc2trueproduct
Use escape analysis to eliminate allocations
share/opto/c2_globals.hpp
EliminateAutoBoxboolc2trueproduct
Control optimizations for autobox elimination
share/opto/c2_globals.hpp
EliminateBlocksboolc1truedevelop
Eliminate unneccessary basic blocks
share/c1/c1_globals.hpp
EliminateFieldAccessboolc1truedevelop
Optimize field loads and stores
share/c1/c1_globals.hpp
EliminateLocksboolc2trueproduct
Coarsen locks when possible
share/opto/c2_globals.hpp
EliminateNestedLocksboolc2trueproduct
Eliminate nested locks of the same object when possible
share/opto/c2_globals.hpp
EliminateNullChecksboolc1truedevelop
Eliminate unneccessary null checks
share/c1/c1_globals.hpp
EmitSyncObsoleted in JDK12
Expired in JDK13
intxruntime0experimental
(Unsafe, Unstable) 
Control emission of inline sync fast-path code
share/runtime/globals.hpp
EnableContendedboolruntimetrueproduct
Enable @Contended annotation support
share/runtime/globals.hpp
EnableDynamicAgentLoadingboolruntimetrueproduct
Allow tools to load agents with the attach mechanism
share/runtime/globals.hpp
EnableJVMCIbooljvmcifalseexperimental
Enable JVMCI
share/jvmci/jvmci_globals.hpp
EnableThreadSMRExtraValidityChecksboolruntimetruediagnostic
Enable Thread SMR extra validity checks
share/runtime/globals.hpp
EnableThreadSMRStatisticsboolruntimetrueInDebugdiagnostic
Enable Thread SMR Statistics
share/runtime/globals.hpp
EpsilonElasticTLABDecayboolgctrueexperimental
Use timed decays to shrink TLAB sizes. This conserves memory 
for the threads that allocate in bursts of different sizes, 
for example the small/rare allocations coming after the initial 
large burst.
share/gc/epsilon/epsilon_globals.hpp
EpsilonElasticTLABboolgctrueexperimental
Use elastic policy to manage TLAB sizes. This conserves memory 
for non-actively allocating threads, even when they request 
large TLABs for themselves. Active threads would experience 
smaller TLABs until policy catches up.
share/gc/epsilon/epsilon_globals.hpp
EpsilonMaxTLABSizesize_tgc4 * M
range(1, max_intx)
experimental
Max TLAB size to use with Epsilon GC. Larger value improves 
performance at the expense of per-thread memory waste. This 
asks TLAB machinery to cap TLAB sizes at this value.
share/gc/epsilon/epsilon_globals.hpp
EpsilonMinHeapExpandsize_tgc128 * M
range(1, max_intx)
experimental
Min expansion step for heap. Larger value improves performance 
at the potential expense of memory waste.
share/gc/epsilon/epsilon_globals.hpp
EpsilonPrintHeapStepssize_tgc20
range(0, max_intx)
experimental
Print heap occupancy stats with this number of steps. 

0 turns the printing off.
share/gc/epsilon/epsilon_globals.hpp
EpsilonTLABDecayTimesize_tgc1000
range(1, max_intx)
experimental
TLAB sizing policy decays to initial size after thread had not 
allocated for this long. Time is in milliseconds. Lower value 
improves memory footprint, but penalizes actively allocating 
threads.
share/gc/epsilon/epsilon_globals.hpp
EpsilonTLABElasticitydoublegc1.1
range(1.0, DBL_MAX)
experimental
Multiplier to use when deciding on next TLAB size. Larger value 
improves performance at the expense of per-thread memory waste. 
Lower value improves memory footprint, but penalizes actively 
allocating threads.
share/gc/epsilon/epsilon_globals.hpp
EpsilonUpdateCountersStepsize_tgc1 * M
range(1, max_intx)
experimental
Update heap occupancy counters after allocating this much 
memory. Higher values would make allocations faster at 
the expense of lower resolution in heap counters.
share/gc/epsilon/epsilon_globals.hpp
ErgoHeapSizeLimitsize_tgc0
range(0, max_uintx)
product
Maximum ergonomically set heap size (in bytes); zero means use 
MaxRAM * MaxRAMPercentage / 100
share/gc/shared/gc_globals.hpp
ErrorFileToStderrboolruntimefalseproduct
If true, error data is printed to stderr instead of a file
share/runtime/globals.hpp
ErrorFileToStdoutboolruntimefalseproduct
If true, error data is printed to stdout instead of a file
share/runtime/globals.hpp
ErrorFileccstrruntimeNULLproduct
If an error occurs, save the error data to this file 
[default: ./hs_err_pid%p.log] (%p replaced with pid)
share/runtime/globals.hpp
ErrorHandlerTestuintxruntime0notproduct
If > 0, provokes an error after VM initialization; the value 
determines which error to provoke. See test_error_handler() 
in vmError.cpp.
share/runtime/globals.hpp
ErrorLogTimeoutuint64_truntime2 * 60
range(0, (uint64_t)max_jlong/1000)
product
Timeout, in seconds, to limit the time spent on writing an 
error log in case of a crash.
share/runtime/globals.hpp
ErrorReportServerObsoleted in JDK12
Expired in JDK13
ccstrruntimeNULLproduct
Override built-in error report server address
share/runtime/globals.hpp
EscapeAnalysisTimeoutdoublec220. DEBUG_ONLY(+40.)
range(0, DBL_MAX)
product
Abort EA when it reaches time limit (in sec)
share/opto/c2_globals.hpp
EstimateArgEscapeboolruntimetrueproduct
Analyze bytecodes to estimate escape state of arguments
share/runtime/globals.hpp
ExecuteInternalVMTestsboolgcfalsenotproduct
Enable execution of internal VM tests
share/gc/shared/gc_globals.hpp
ExecutingUnitTestsboolgcfalseproduct
Whether the JVM is running unit tests or not
share/gc/shared/gc_globals.hpp
ExitEscapeAnalysisOnTimeoutboolc2truedevelop
Exit or throw assert in EA when it reaches time limit
share/opto/c2_globals.hpp
ExitOnFullCodeCacheboolruntimefalsenotproduct
Exit the VM if we fill the code cache
share/runtime/globals.hpp
ExitOnOutOfMemoryErrorboolruntimefalseproduct
JVM exits on the first occurrence of an out-of-memory error
share/runtime/globals.hpp
ExitVMOnVerifyErrorboolruntimefalsenotproduct
standard exit from VM if bytecode verify error 
(only in debug mode)
share/runtime/globals.hpp
ExpandLoadingBaseDecode_NNbools390trueproduct
Expand the assembler 
instruction required to load the base from DecodeN_NN nodes 
during matching.
cpu/s390/globals_s390.hpp
ExpandLoadingBaseDecodebools390trueproduct
Expand the assembler 
instruction required to load the base from DecodeN nodes during 
matching.
cpu/s390/globals_s390.hpp
ExpandLoadingBaseEncode_NNbools390trueproduct
Expand the assembler 
instruction required to load the base from EncodeP_NN nodes 
during matching.
cpu/s390/globals_s390.hpp
ExpandLoadingBaseEncodebools390trueproduct
Expand the assembler 
instruction required to load the base from EncodeP nodes during 
matching.
cpu/s390/globals_s390.hpp
ExplicitGCInvokesConcurrentboolgcfalseproduct
A System.gc() request invokes a concurrent collection; 
(effective only when using concurrent collectors)
share/gc/shared/gc_globals.hpp
ExtendedDTraceProbesDeprecated in JDK19
Obsoleted in JDK20
Expired in JDK21
boolruntimefalseproduct
Enable performance-impacting dtrace probes
share/runtime/globals.hpp
ExtensiveErrorReportsboolruntimePRODUCT_ONLY(false) NOT_PRODUCT(true)product
Error reports are more extensive.
share/runtime/globals.hpp
ExtraSharedClassListFileccstrruntimeNULLproduct
Extra classlist for building the CDS archive file
share/runtime/globals.hpp
FLOATPRESSUREintxaarch6432define_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
FLOATPRESSUREintxarm30define_pd_global
cpu/arm/c2_globals_arm.hpp
FLOATPRESSUREintxc2develop_pd
Number of float LRG's that constitute high register pressure
share/opto/c2_globals.hpp
FLOATPRESSUREintxppc28define_pd_global
cpu/ppc/c2_globals_ppc.hpp
FLOATPRESSUREintxs39015define_pd_global
cpu/s390/c2_globals_s390.hpp
FLOATPRESSUREintxsparc52define_pd_global
// C2 on V9 gets to use all the float/double registers
cpu/sparc/c2_globals_sparc.hpp
FLOATPRESSUREintxx866define_pd_global
cpu/x86/c2_globals_x86.hpp
FLSAlwaysCoalesceLargeObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
CMS: larger free blocks are always available for coalescing
share/gc/cms/cms_globals.hpp
FLSCoalescePolicyObsoleted in JDK14
Expired in JDK15
uintxgc2
range(0, 4)
product
CMS: aggressiveness level for coalescing, increasing 
from 0 to 4
share/gc/cms/cms_globals.hpp
FLSLargestBlockCoalesceProximityObsoleted in JDK14
Expired in JDK15
doublegc0.99
range(0.0, 1.0)
product
CMS: the smaller the percentage the greater the coalescing 
force
share/gc/cms/cms_globals.hpp
FLSVerifyAllHeapReferencesboolgcfalsediagnostic
Verify that all references across the FLS boundary 
are to valid objects
share/gc/cms/cms_globals.hpp
FLSVerifyDictionaryboolruntimefalsedevelop
Do lots of (expensive) FLS dictionary verification
share/runtime/globals.hpp
FLSVerifyIndexTableboolgcfalsediagnostic
Do lots of (expensive) FLS index table verification
share/gc/cms/cms_globals.hpp
FLSVerifyListsboolgcfalsediagnostic
Do lots of (expensive) FreeListSpace verification
share/gc/cms/cms_globals.hpp
FailOverToOldVerifierObsoleted in JDK14
Expired in JDK15
boolruntimetrueproduct
Fail over to old verifier when split verifier fails
share/runtime/globals.hpp
FastAllocateSizeLimitintxruntime128*Kdevelop
/* Note: This value is zero mod 1<<13 for a cheap sparc set. */Inline allocations larger than this in doublewords must go slow
share/runtime/globals.hpp
FastSuperclassLimitintxruntime8develop
Depth of hardwired instanceof accelerator array
share/runtime/globals.hpp
FieldsAllocationStyleDeprecated in JDK14
Obsoleted in JDK15
Expired in JDK16
intxruntime1
range(0, 2)
product
0 - type based with oops first, 

1 - with oops last, 

2 - oops in super and sub classes are together
share/runtime/globals.hpp
FillDelaySlotsboolruntimetruedevelop
Fill delay slots (on SPARC only)
share/runtime/globals.hpp
FilterSpuriousWakeupsDeprecated in JDK18
Obsoleted in JDK19
Expired in JDK20
boolruntimetrueproduct
When true prevents OS-level spurious, or premature, wakeups 
from Object.wait (Ignored for Windows)
share/runtime/globals.hpp
FlightRecorderOptionsccstrruntimeNULLproduct
Flight Recorder options
share/runtime/globals.hpp
FlightRecorderDeprecated in JDK13boolruntimefalseproduct
Enable Flight Recorder
share/runtime/globals.hpp
FoldStableValuesboolruntimetruediagnostic
Optimize loads from stable fields (marked w/ @Stable)
share/runtime/globals.hpp
ForceDynamicNumberOfGCThreadsboolgcfalsediagnostic
Force dynamic selection of the number of 
parallel threads parallel gc will use to aid debugging
share/gc/shared/gc_globals.hpp
ForceFloatExceptionsboolruntimetrueInDebugdevelop
Force exceptions on FP stack under/overflow
share/runtime/globals.hpp
ForceNUMADeprecated in JDK15
Obsoleted in JDK16
Expired in JDK17
boolruntimefalseproduct
Force NUMA optimizations on single-node/UMA systems
share/runtime/globals.hpp
ForceTimeHighResolutionboolruntimefalseproduct
Using high time resolution (for Win32 only)
share/runtime/globals.hpp
ForceUnreachableboolruntimefalsediagnostic
Make all non code cache addresses to be unreachable by 
forcing use of 64bit literal fixups
share/runtime/globals.hpp
FreqCountInvocationsintxc21
range(1, max_intx)
develop
Scaling factor for branch frequencies (deprecated)
share/opto/c2_globals.hpp
FreqInlineSizeintxaarch64325define_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
FreqInlineSizeintxarm175define_pd_global
cpu/arm/c2_globals_arm.hpp
FreqInlineSizeintxruntimeproduct_pd
The maximum bytecode size of a frequent method to be inlined
share/runtime/globals.hpp
FreqInlineSizeintxppc325define_pd_global
cpu/ppc/c1_globals_ppc.hpp
FreqInlineSizeintxs390175define_pd_global
cpu/s390/c2_globals_s390.hpp
FreqInlineSizeintxsparc325define_pd_global
cpu/sparc/c1_globals_sparc.hpp
FreqInlineSizeintxx86325define_pd_global
cpu/x86/c1_globals_x86.hpp
FullGCALotDummiesintxgc32*Knotproduct
Dummy object allocated with +FullGCALot, forcing all objects 
to move
share/gc/shared/gc_globals.hpp
FullGCALotIntervalintxgc1notproduct
Interval between which full gc will occur with +FullGCALot
share/gc/shared/gc_globals.hpp
FullGCALotStartintxgc0notproduct
For which invocation to start FullGCAlot
share/gc/shared/gc_globals.hpp
FullGCALotboolgcfalsedevelop
Force full gc at every Nth exit from the runtime system 
(N=FullGCALotInterval)
share/gc/shared/gc_globals.hpp
G1AdaptiveIHOPNumInitialSamplessize_tgc3
range(1, max_intx)
experimental
How many completed time periods from initial mark to first 
mixed gc are required to use the input values for prediction 
of the optimal occupancy to start marking.
share/gc/g1/g1_globals.hpp
G1ConcMarkStepDurationMillisdoublegc10.0
range(1.0, DBL_MAX)
product
Target duration of individual concurrent marking steps 
in milliseconds.
share/gc/g1/g1_globals.hpp
G1ConcRSHotCardLimitObsoleted in JDK21
Expired in JDK24
uintxgc4
range(0, max_jubyte)
product
The threshold that defines (>=) a hot card.
share/gc/g1/g1_globals.hpp
G1ConcRSLogCacheSizeObsoleted in JDK21
Expired in JDK24
size_tgc10
range(0, 27)
product
Log base 2 of the length of conc RS hot-card cache.
share/gc/g1/g1_globals.hpp
G1ConcRefinementGreenZoneObsoleted in JDK20
Expired in JDK24
size_tgc0
range(0, max_intx)
product
The number of update buffers that are left in the queue by the 
concurrent processing threads. Will be selected ergonomically 
by default.
share/gc/g1/g1_globals.hpp
G1ConcRefinementRedZoneObsoleted in JDK20
Expired in JDK24
size_tgc0
range(0, max_intx)
product
Maximum number of enqueued update buffers before mutator 
threads start processing new ones instead of enqueueing them. 
Will be selected ergonomically by default.
share/gc/g1/g1_globals.hpp
G1ConcRefinementServiceIntervalMillisObsoleted in JDK20
Expired in JDK24
uintxgc300
range(0, max_jint)
product
The last concurrent refinement thread wakes up every 
specified number of milliseconds to do miscellaneous work.
share/gc/g1/g1_globals.hpp
G1ConcRefinementThreadsuintgc0
range(0, (max_jint-1)/wordSize)
product
The number of parallel rem set update threads. 
Will be set ergonomically by default.
share/gc/g1/g1_globals.hpp
G1ConcRefinementThresholdStepObsoleted in JDK20
Expired in JDK24
size_tgc2
range(1, SIZE_MAX)
product
Each time the rset update queue increases by this amount 
activate the next refinement thread if available. 
The actual step size will be selected ergonomically by 
default, with this value used to determine a lower bound.
share/gc/g1/g1_globals.hpp
G1ConcRefinementYellowZoneObsoleted in JDK20
Expired in JDK24
size_tgc0
range(0, max_intx)
product
Number of enqueued update buffers that will 
trigger concurrent processing. Will be selected ergonomically 
by default.
share/gc/g1/g1_globals.hpp
G1ConfidencePercentuintxgc50
range(0, 100)
product
Confidence level for MMU/pause predictions
share/gc/g1/g1_globals.hpp
G1DummyRegionsPerGCuintxgc0develop
The number of dummy regions G1 will allocate at the end of 
each evacuation pause in order to artificially fill up the 
heap and stress the marking implementation.
share/gc/g1/g1_globals.hpp
G1EagerReclaimHumongousObjectsWithStaleRefsboolgctrueexperimental
Try to reclaim dead large objects that have a few stale 
references at every young GC.
share/gc/g1/g1_globals.hpp
G1EagerReclaimHumongousObjectsboolgctrueexperimental
Try to reclaim dead large objects at every young GC.
share/gc/g1/g1_globals.hpp
G1EvacuationFailureALotCountuintxgc1000develop
Number of successful evacuations between evacuation failures 
occurring at object copying
share/gc/g1/g1_globals.hpp
G1EvacuationFailureALotDuringConcMarkboolgctruedevelop
Force use of evacuation failure handling during evacuation 
pauses when marking is in progress
share/gc/g1/g1_globals.hpp
G1EvacuationFailureALotDuringInitialMarkboolgctruedevelop
Force use of evacuation failure handling during initial mark 
evacuation pauses
share/gc/g1/g1_globals.hpp
G1EvacuationFailureALotDuringMixedGCboolgctruedevelop
Force use of evacuation failure handling during mixed 
evacuation pauses
share/gc/g1/g1_globals.hpp
G1EvacuationFailureALotDuringYoungGCboolgctruedevelop
Force use of evacuation failure handling during young 
evacuation pauses
share/gc/g1/g1_globals.hpp
G1EvacuationFailureALotIntervaluintxgc5develop
Total collections between forced triggering of evacuation 
failures
share/gc/g1/g1_globals.hpp
G1EvacuationFailureALotboolgcfalsenotproduct
Force use of evacuation failure handling during certain 
evacuation pauses
share/gc/g1/g1_globals.hpp
G1ExitOnExpansionFailureboolgcfalsedevelop
Raise a fatal VM exit out of memory failure in the event 
 that heap expansion fails due to running out of swap.
share/gc/g1/g1_globals.hpp
G1ExpandByPercentOfAvailableintxgc20
range(0, 100)
experimental
When expanding, % of uncommitted space to claim.
share/gc/g1/g1_globals.hpp
G1HRRSUseSparseTableboolgctruedevelop
When true, use sparse table to save space.
share/gc/g1/g1_globals.hpp
G1HeapRegionSizesize_tgc0
range(0, 32*M)
product
Size of the G1 regions.
share/gc/g1/g1_globals.hpp
G1HeapWastePercentuintxgc5
range(0, 100)
product
Amount of space, expressed as a percentage of the heap size, 
that G1 is willing not to collect to avoid expensive GCs.
share/gc/g1/g1_globals.hpp
G1LastPLABAverageOccupancydoublegc50.0
range(0.001, 100.0)
experimental
The expected average occupancy of the last PLAB in 
percent.
share/gc/g1/g1_globals.hpp
G1MaxNewSizePercentuintxgc60
range(0, 100)
experimental
Percentage (0-100) of the heap size to use as default 
 maximum young gen size.
share/gc/g1/g1_globals.hpp
G1MaxVerifyFailuresintxgc-1
range(-1, max_jint)
develop
The maximum number of verification failures to print. 
-1 means print all.
share/gc/g1/g1_globals.hpp
G1MixedGCCountTargetuintxgc8
range(0, max_uintx)
product
The target number of mixed GCs after a marking cycle.
share/gc/g1/g1_globals.hpp
G1MixedGCLiveThresholdPercentuintxgc85
range(0, 100)
experimental
Threshold for regions to be considered for inclusion in the 
collection set of mixed GCs. 
Regions with live bytes exceeding this will not be collected.
share/gc/g1/g1_globals.hpp
G1NewSizePercentuintxgc5
range(0, 100)
experimental
Percentage (0-100) of the heap size to use as default 
minimum young gen size.
share/gc/g1/g1_globals.hpp
G1OldCSetRegionThresholdPercentuintxgc10
range(0, 100)
experimental
An upper bound for the number of old CSet regions expressed 
as a percentage of the heap size.
share/gc/g1/g1_globals.hpp
G1PretouchAuxiliaryMemoryboolgcfalseexperimental
Pre-touch large auxiliary data structures used by the GC.
share/gc/g1/g1_globals.hpp
G1RSetRegionEntriesBaseintxgc256
range(1, max_jint/wordSize)
develop
Max number of regions in a fine-grain table per MB.
share/gc/g1/g1_globals.hpp
G1RSetRegionEntriesObsoleted in JDK18
Expired in JDK19
intxgc0
range(0, max_jint/wordSize)
product
Max number of regions for which we keep bitmaps.
Will be set ergonomically by default
share/gc/g1/g1_globals.hpp
G1RSetScanBlockSizeDeprecated in JDK14
Obsoleted in JDK15
Expired in JDK16
size_tgc64
range(1, max_uintx)
product
Size of a work unit of cards claimed by a worker thread
during RSet scanning.
share/gc/g1/g1_globals.hpp
G1RSetSparseRegionEntriesBaseintxgc4
range(1, max_jint/wordSize)
develop
Max number of entries per region in a sparse table 
per MB.
share/gc/g1/g1_globals.hpp
G1RSetSparseRegionEntriesObsoleted in JDK18
Expired in JDK19
intxgc0
range(0, max_jint/wordSize)
product
Max number of entries per region in a sparse table.
Will be set ergonomically by default.
share/gc/g1/g1_globals.hpp
G1RSetUpdatingPauseTimePercentintxgc10
range(0, 100)
product
A target percentage of time that is allowed to be spend on 
process RS update buffers during the collection pause.
share/gc/g1/g1_globals.hpp
G1RebuildRemSetChunkSizesize_tgc256 * K
range(4 * K, 32 * M)
experimental
Chunk size used for rebuilding the remembered set.
share/gc/g1/g1_globals.hpp
G1RefProcDrainIntervaluintgc1000
range(1, INT_MAX)
product
The number of discovered reference objects to process before 
draining concurrent marking work queues.
share/gc/g1/g1_globals.hpp
G1ReservePercentuintxgc10
range(0, 50)
product
It determines the minimum reserve we should have in the heap 
to minimize the probability of promotion failure.
share/gc/g1/g1_globals.hpp
G1SATBBufferEnqueueingThresholdPercentuintxgc60
range(0, 100)
product
Before enqueueing them, each mutator thread tries to do some 
filtering on the SATB buffers it generates. If post-filtering 
the percentage of retained entries is over this threshold 
the buffer will be enqueued for processing. A value of 0 
specifies that mutator threads should not do such filtering.
share/gc/g1/g1_globals.hpp
G1SATBBufferSizesize_tgc1*K
range(1, max_uintx)
product
Number of entries in an SATB log buffer.
share/gc/g1/g1_globals.hpp
G1SATBProcessCompletedThresholdintxgc20
range(0, max_jint)
develop
Number of completed buffers that triggers log processing.
share/gc/g1/g1_globals.hpp
G1SummarizeRSetStatsPeriodintxgc0
range(0, max_intx)
diagnostic
The period (in number of GCs) at which we will generate 
update buffer processing info 
(0 means do not periodically generate this info); 
it also requires that logging is enabled on the trace
level for gc+remset
share/gc/g1/g1_globals.hpp
G1UpdateBufferSizesize_tgc256
range(1, NOT_LP64(32*M) LP64_ONLY(1*G))
product
Size of an update buffer
share/gc/g1/g1_globals.hpp
G1UseAdaptiveConcRefinementObsoleted in JDK20
Expired in JDK24
boolgctrueproduct
Select green, yellow and red zones adaptively to meet the 
the pause requirements.
share/gc/g1/g1_globals.hpp
G1UseAdaptiveIHOPboolgctrueproduct
Adaptively adjust the initiating heap occupancy from the 
initial value of InitiatingHeapOccupancyPercent. The policy 
attempts to start marking in time based on application 
behavior.
share/gc/g1/g1_globals.hpp
G1UseReferencePrecleaningboolgctrueexperimental
Concurrently preclean java.lang.ref.references instances 
before the Remark pause.
share/gc/g1/g1_globals.hpp
G1VerifyBitmapsboolgcfalsedevelop
Verifies the consistency of the marking bitmaps
share/gc/g1/g1_globals.hpp
G1VerifyCTCleanupboolgcfalsedevelop
Verify card table cleanup.
share/gc/g1/g1_globals.hpp
G1VerifyHeapRegionCodeRootsboolgcfalsediagnostic
Verify the code root lists attached to each heap region.
share/gc/g1/g1_globals.hpp
G1VerifyRSetsDuringFullGCboolgcfalsediagnostic
If true, perform verification of each heap region's 
remembered set when verifying the heap during a full GC.
share/gc/g1/g1_globals.hpp
GCALotAtAllSafepointsboolgcfalsenotproduct
Enforce ScavengeALot/GCALot at all potential safepoints
share/gc/shared/gc_globals.hpp
GCDrainStackTargetSizeuintxgc64
range(0, max_juint)
product
Number of entries we will try to leave on the stack 
during parallel gc
share/gc/shared/gc_globals.hpp
GCExpandToAllocateDelayMillisuintxgc0develop
Delay between expansion and allocation (in milliseconds)
share/gc/shared/gc_globals.hpp
GCHeapFreeLimituintxgc2
range(0, 100)
product
Minimum percentage of free space after a full GC before an 
OutOfMemoryError is thrown (used with GCTimeLimit)
share/gc/shared/gc_globals.hpp
GCLockerEdenExpansionPercentObsoleted in JDK23
Expired in JDK24
uintxgc5
range(0, 100)
product
How much the GC can expand the eden by while the GC locker 
is active (as a percentage)
share/gc/shared/gc_globals.hpp
GCLockerInvokesConcurrentObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
The exit of a JNI critical section necessitating a scavenge, 
also kicks off a background concurrent collection
share/gc/shared/gc_globals.hpp
GCLockerRetryAllocationCountuintxgc2
range(0, max_uintx)
diagnostic
Number of times to retry allocations when 
blocked by the GC locker
share/gc/shared/gc_globals.hpp
GCParallelVerificationEnabledboolgctruediagnostic
Enable parallel memory system verification
share/gc/shared/gc_globals.hpp
GCPauseIntervalMillisuintxgc0product
Time slice for MMU specification
share/gc/shared/gc_globals.hpp
GCTaskTimeStampEntriesObsoleted in JDK14
Expired in JDK16
uintgc200
range(1, max_jint)
product
Number of time stamp entries per gc worker thread
share/gc/shared/gc_globals.hpp
GCTimeLimituintxgc98
range(0, 100)
product
Limit of the proportion of time spent in GC before 
an OutOfMemoryError is thrown (used with GCHeapFreeLimit)
share/gc/shared/gc_globals.hpp
GCTimeRatiouintxgc99
range(0, max_juint)
product
Adaptive size policy application time to GC time ratio
share/gc/shared/gc_globals.hpp
GCWorkerDelayMillisuintxgc0develop
Delay in scheduling GC workers (in milliseconds)
share/gc/parallel/parallel_globals.hpp
GenerateArrayStoreCheckboolc1truedevelop
Generates code for array store checks
share/c1/c1_globals.hpp
GenerateRangeChecksboolruntimetruedevelop
Generate range checks for array accesses
share/runtime/globals.hpp
GenerateSynchronizationCodeboolruntimetruedevelop
generate locking/unlocking code for synchronized methods and 
monitors
share/runtime/globals.hpp
GuaranteedSafepointIntervalintxruntime1000
range(0, max_jint)
diagnostic
Guarantee a safepoint (at least) every so many milliseconds 
(0 means none)
share/runtime/globals.hpp
HandshakeTimeoutuintruntime0diagnostic
If nonzero set a timeout in milliseconds for handshakes
share/runtime/globals.hpp
HeapBaseMinAddresssize_taixppc2*Gdefine_pd_global
os_cpu/aix_ppc/globals_aix_ppc.hpp
HeapBaseMinAddressuintxbsdaarch642*Gdefine_pd_global
os_cpu/bsd_aarch64/globals_bsd_aarch64.hpp
HeapBaseMinAddresssize_tbsdx862*Gdefine_pd_global
os_cpu/bsd_x86/globals_bsd_x86.hpp
HeapBaseMinAddresssize_tbsdzero2*Gdefine_pd_global
os_cpu/bsd_zero/globals_bsd_zero.hpp
HeapBaseMinAddressuintxlinuxaarch642*Gdefine_pd_global
os_cpu/linux_aarch64/globals_linux_aarch64.hpp
HeapBaseMinAddresssize_tlinuxarm2*Gdefine_pd_global
os_cpu/linux_arm/globals_linux_arm.hpp
HeapBaseMinAddresssize_tlinuxppc2*Gdefine_pd_global
os_cpu/linux_ppc/globals_linux_ppc.hpp
HeapBaseMinAddresssize_tlinuxs3902*Gdefine_pd_global
os_cpu/linux_s390/globals_linux_s390.hpp
HeapBaseMinAddresssize_tlinuxsparcCONST64(4)*Gdefine_pd_global
os_cpu/linux_sparc/globals_linux_sparc.hpp
HeapBaseMinAddresssize_tlinuxx862*Gdefine_pd_global
os_cpu/linux_x86/globals_linux_x86.hpp
HeapBaseMinAddresssize_tlinuxzero2*Gdefine_pd_global
os_cpu/linux_zero/globals_linux_zero.hpp
HeapBaseMinAddresssize_tgcproduct_pd
OS specific low limit for heap base address
share/gc/shared/gc_globals.hpp
HeapBaseMinAddresssize_tsolarissparcCONST64(6)*Gdefine_pd_global
os_cpu/solaris_sparc/globals_solaris_sparc.hpp
HeapBaseMinAddresssize_tsolarisx862*Gdefine_pd_global
os_cpu/solaris_x86/globals_solaris_x86.hpp
HeapBaseMinAddressuintxwindowsaarch642*Gdefine_pd_global
os_cpu/windows_aarch64/globals_windows_aarch64.hpp
HeapBaseMinAddresssize_twindowsx862*Gdefine_pd_global
os_cpu/windows_x86/globals_windows_x86.hpp
HeapDumpAfterFullGCboolruntimefalsemanageable
Dump heap to file after any major stop-the-world GC
share/runtime/globals.hpp
HeapDumpBeforeFullGCboolruntimefalsemanageable
Dump heap to file before any major stop-the-world GC
share/runtime/globals.hpp
HeapDumpOnOutOfMemoryErrorboolruntimefalsemanageable
Dump heap to file when java.lang.OutOfMemoryError is thrown
share/runtime/globals.hpp
HeapDumpPathccstrruntimeNULLmanageable
When HeapDumpOnOutOfMemoryError is on, the path (filename or 
directory) of the dump file (defaults to java_pid.hprof 
in the working directory)
share/runtime/globals.hpp
HeapFirstMaximumCompactionCountuintxgc3
range(0, max_uintx)
product
The collection count for the first maximum compaction
share/gc/parallel/parallel_globals.hpp
HeapMaximumCompactionIntervaluintxgc20
range(0, max_uintx)
product
How often should we maximally compact the heap (not allowing 
any dead space)
share/gc/parallel/parallel_globals.hpp
HeapSearchStepsuintxruntime3 PPC64_ONLY(+17)
range(1, max_uintx)
product
Heap allocation steps through preferred address regions to find
 where it can allocate the heap. Number of steps to take per 
region.
share/runtime/globals.hpp
HeapSizePerGCThreadsize_tgcScaleForWordSize(32*M)
range((size_t)os::vm_page_size(), (size_t)max_uintx)
product
Size of heap (bytes) per GC thread used in calculating the 
number of GC threads
share/gc/shared/gc_globals.hpp
HotCallCountThresholdintxc2999999
range(0, ((intx)MIN2((int64_t)max_intx,(int64_t)(+1.0e10))))
develop
large numbers of calls (per method invocation) force hotness
share/opto/c2_globals.hpp
HotCallProfitThresholdintxc2999999
range(0, ((intx)MIN2((int64_t)max_intx,(int64_t)(+1.0e10))))
develop
highly profitable inlining opportunities force hotness
share/opto/c2_globals.hpp
HotCallTrivialSizeintxc2-1
range(-1, ((intx)MIN2((int64_t)max_intx,(int64_t)(+1.0e10))))
develop
trivial methods (no larger than this) force calls to be hot
share/opto/c2_globals.hpp
HotCallTrivialWorkintxc2-1
range(-1, ((intx)MIN2((int64_t)max_intx,(int64_t)(+1.0e10))))
develop
trivial execution time (no larger than this) forces hotness
share/opto/c2_globals.hpp
HotMethodDetectionLimitintxruntime100000
range(1, max_jint)
diagnostic
Number of compiled code invocations after which 
the method is considered as hot by the flusher
share/runtime/globals.hpp
HugeMethodLimitintxruntime8000develop
Don't compile methods larger than this if 
+DontCompileHugeMethods
share/runtime/globals.hpp
ICMissHistogramboolruntimefalsenotproduct
Produce histogram of IC misses
share/runtime/globals.hpp
IEEEPrecisionboolx86truedevelop
Enables IEEE precision (for INTEL only)
cpu/x86/globals_x86.hpp
INTPRESSUREintxaarch6424define_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
INTPRESSUREintxarm12define_pd_global
cpu/arm/c2_globals_arm.hpp
INTPRESSUREintxc2develop_pd
Number of integer LRG's that constitute high register pressure
share/opto/c2_globals.hpp
INTPRESSUREintxppc26define_pd_global
cpu/ppc/c2_globals_ppc.hpp
INTPRESSUREintxs39010define_pd_global
// Medium size register set, 6 special purpose regs, 3 SOE regs.
cpu/s390/c2_globals_s390.hpp
INTPRESSUREintxsparc48define_pd_global
// large register set
cpu/sparc/c2_globals_sparc.hpp
INTPRESSUREintxx866define_pd_global
cpu/x86/c2_globals_x86.hpp
IdealizeClearArrayNodeboolaarch64truedefine_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
IdealizeClearArrayNodeboolc2diagnostic_pd
Replace ClearArrayNode by subgraph of basic operations.
share/opto/c2_globals.hpp
IdealizeClearArrayNodeboolppctruedefine_pd_global
cpu/ppc/c2_globals_ppc.hpp
IdealizeClearArrayNodebools390falsedefine_pd_global
cpu/s390/c2_globals_s390.hpp
IdealizeClearArrayNodeboolsparctruedefine_pd_global
cpu/sparc/c2_globals_sparc.hpp
IdealizeClearArrayNodeboolx86truedefine_pd_global
cpu/x86/c2_globals_x86.hpp
IdealizedNumericsboolc2falsedevelop
Check performance difference allowing FP 
associativity and commutativity...
share/opto/c2_globals.hpp
IgnoreEmptyClassPathsboolruntimefalseproduct
Ignore empty path elements in -classpath
share/runtime/globals.hpp
IgnoreLibthreadGPFaultboolruntimefalsedevelop
Suppress workaround for libthread GP fault
share/runtime/globals.hpp
IgnoreLockingAssertionsboolruntimefalsenotproduct
disable locking assertions (for speed)
share/runtime/globals.hpp
IgnoreRewritesboolruntimefalsedevelop
Suppress rewrites of bytecodes in the oopmap generator. 
This is unsafe!
share/runtime/globals.hpp
IgnoreUnrecognizedVMOptionsboolruntimefalseproduct
Ignore unrecognized VM options
share/runtime/globals.hpp
IgnoreUnverifiableClassesDuringDumpDeprecated in JDK10
Obsoleted in JDK12
Expired in JDK13
boolruntimetruediagnostic
Do not quit -Xshare:dump even if we encounter unverifiable 
classes. Just exclude them from the shared dictionary.
share/runtime/globals.hpp
ImplicitDiv0Checksboolc1truedevelop
Use implicit division by zero checks
share/c1/c1_globals.hpp
ImplicitNullCheckThresholdintxc23
range(0, max_jint)
develop
Don't do implicit null checks if NPE's in a method exceeds 
limit
share/opto/c2_globals.hpp
ImplicitNullChecksboolaarch64truedefine_pd_global
// Generate code for implicit null checks
cpu/aarch64/globals_aarch64.hpp
ImplicitNullChecksboolarmtruedefine_pd_global
// Generate code for implicit null checks
cpu/arm/globals_arm.hpp
ImplicitNullChecksboolruntimediagnostic_pd
Generate code for implicit null checks
share/runtime/globals.hpp
ImplicitNullChecksboolppctruedefine_pd_global
// Generate code for implicit null checks.
cpu/ppc/globals_ppc.hpp
ImplicitNullChecksbools390truedefine_pd_global
// Generate code for implicit null checks.
cpu/s390/globals_s390.hpp
ImplicitNullChecksboolsparctruedefine_pd_global
// Generate code for implicit null checks
cpu/sparc/globals_sparc.hpp
ImplicitNullChecksboolx86truedefine_pd_global
// Generate code for implicit null checks
cpu/x86/globals_x86.hpp
ImplicitNullChecksboolzerotruedefine_pd_global
cpu/zero/globals_zero.hpp
IncreaseFirstTierCompileThresholdAtuintxruntime50
range(0, 99)
product
Increase the compile threshold for C1 compilation if the code 
cache is filled by the specified percentage
share/runtime/globals.hpp
IncrementalInlineboolc2trueproduct
do post parse inlining
share/opto/c2_globals.hpp
IndexSetWatchintxc20
range(-1, 0)
notproduct
Trace all operations on this IndexSet (-1 means all, 0 none)
share/opto/c2_globals.hpp
InitArrayShortSizeintxaarch64BytesPerLongdefine_pd_global
cpu/aarch64/globals_aarch64.hpp
InitArrayShortSizeintxarm8*BytesPerLongdefine_pd_global
cpu/arm/globals_arm.hpp
InitArrayShortSizeintxruntimediagnostic_pd
Threshold small size (in bytes) for clearing arrays. 
Anything this size or smaller may get converted to discrete 
scalar stores.
share/runtime/globals.hpp
InitArrayShortSizeintxppc9*BytesPerLongdefine_pd_global
cpu/ppc/globals_ppc.hpp
InitArrayShortSizeintxs3901*BytesPerLongdefine_pd_global
cpu/s390/globals_s390.hpp
InitArrayShortSizeintxsparc8*BytesPerLongdefine_pd_global
cpu/sparc/globals_sparc.hpp
InitArrayShortSizeintxx868*BytesPerLongdefine_pd_global
cpu/x86/globals_x86.hpp
InitArrayShortSizeintxzero0define_pd_global
cpu/zero/globals_zero.hpp
InitialBootClassLoaderMetaspaceSizeDeprecated in JDK15
Obsoleted in JDK16
Expired in JDK17
size_truntimeNOT_LP64(2200*K) LP64_ONLY(4*M)
range(30*K, max_uintx/BytesPerWord)
product
Initial size of the boot class loader data metaspace
share/runtime/globals.hpp
InitialCodeCacheSizeintxaarch64160*Kdefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
InitialCodeCacheSizesize_tarm160*Kdefine_pd_global
cpu/arm/c1_globals_arm.hpp
InitialCodeCacheSizeuintxruntimeproduct_pd
Initial code cache size (in bytes)
share/runtime/globals.hpp
InitialCodeCacheSizeuintxppc160*Kdefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
InitialCodeCacheSizeuintxs3902048*Kdefine_pd_global
// Integral multiple of CodeCacheExpansionSize
cpu/s390/c2_globals_s390.hpp
InitialCodeCacheSizeuintxsparc160*Kdefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
InitialCodeCacheSizeuintxx86160*Kdefine_pd_global
cpu/x86/c1_globals_x86.hpp
InitialHeapSizesize_tgc0product
Initial heap size (in bytes); zero means use ergonomics
share/gc/shared/gc_globals.hpp
InitialRAMFractionDeprecated in JDK10
Obsoleted in JDK23
Expired in JDK24
uintxgc64
range(1, max_uintx)
product
Fraction (1/n) of real memory used for initial heap size. 
Deprecated, use InitialRAMPercentage instead
share/gc/shared/gc_globals.hpp
InitialRAMPercentagedoublegc1.5625
range(0.0, 100.0)
product
Percentage of real memory used for initial heap size
share/gc/shared/gc_globals.hpp
InitialSurvivorRatiouintxgc8
range(0, max_uintx)
product
Initial ratio of young generation/survivor space size
share/gc/shared/gc_globals.hpp
InitialTenuringThresholduintxgc7
range(0, markOopDesc::max_age + 1)
product
Initial value for tenuring threshold
share/gc/shared/gc_globals.hpp
InitiatingHeapOccupancyPercentuintxgc45
range(0, 100)
product
The percent occupancy (IHOP) of the current old generation 
capacity above which a concurrent mark cycle will be initiated 
Its value may change over time if adaptive IHOP is enabled, 
otherwise the value remains constant. 
In the latter case a value of 0 will result as frequent as 
possible concurrent marking cycles. A value of 100 disables 
concurrent marking. 
Fragmentation waste in the old generation is not considered 
free space in this calculation. (G1 collector only)
share/gc/shared/gc_globals.hpp
InjectCompilerCreationFailureboolruntimefalsedevelop
Inject thread creation failures for 
UseDynamicNumberOfCompilerThreads
share/runtime/globals.hpp
InjectGCWorkerCreationFailureboolgcfalsediagnostic
Inject thread creation failures for 
UseDynamicNumberOfGCThreads
share/gc/shared/gc_globals.hpp
InlineAccessorsboolc2truedevelop
inline accessor methods (get/set)
share/opto/c2_globals.hpp
InlineArrayCopyboolruntimetruediagnostic
Inline arraycopy native that is known to be part of 
base library DLL
share/runtime/globals.hpp
InlineCacheBufferSizesize_truntime10*Kexperimental
InlineCacheBuffer size
share/runtime/globals.hpp
InlineClassNativesboolruntimetruediagnostic
Inline Class.isInstance, etc
share/runtime/globals.hpp
InlineDataFileccstrruntimeNULLproduct
File containing inlining replay information
[default: ./inline_pid%p.log] (%p replaced with pid)
share/runtime/globals.hpp
InlineFrequencyCountObsoleted in JDK18
Expired in JDK19
intxaarch64100define_pd_global
cpu/aarch64/globals_aarch64.hpp
InlineFrequencyCountObsoleted in JDK18
Expired in JDK19
intxarm50define_pd_global
cpu/arm/globals_arm.hpp
InlineFrequencyCountObsoleted in JDK18
Expired in JDK19
intxruntimediagnostic_pd
Count of call site execution necessary to trigger frequent 
inlining
share/runtime/globals.hpp
InlineFrequencyCountObsoleted in JDK18
Expired in JDK19
intxppc100define_pd_global
cpu/ppc/globals_ppc.hpp
InlineFrequencyCountObsoleted in JDK18
Expired in JDK19
intxs390100define_pd_global
cpu/s390/globals_s390.hpp
InlineFrequencyCountObsoleted in JDK18
Expired in JDK19
intxsparc50define_pd_global
// we can use more inlining on the SPARC
cpu/sparc/globals_sparc.hpp
InlineFrequencyCountObsoleted in JDK18
Expired in JDK19
intxx86100define_pd_global
cpu/x86/globals_x86.hpp
InlineFrequencyCountObsoleted in JDK18
Expired in JDK19
intxzero100define_pd_global
cpu/zero/globals_zero.hpp
InlineFrequencyRatiointxruntime20
range(0, max_jint)
develop
Ratio of call site execution to caller method invocation
share/runtime/globals.hpp
InlineIntrinsicsboolaarch64truedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
InlineIntrinsicsboolarmfalsedefine_pd_global
cpu/arm/c2_globals_arm.hpp
InlineIntrinsicsboolruntimedevelop_pd
Inline intrinsics that can be statically resolved
share/runtime/globals.hpp
InlineIntrinsicsboolppctruedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
InlineIntrinsicsbools390truedefine_pd_global
cpu/s390/c2_globals_s390.hpp
InlineIntrinsicsboolsparctruedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
InlineIntrinsicsboolx86truedefine_pd_global
cpu/x86/c1_globals_x86.hpp
InlineMathNativesboolruntimetruediagnostic
Inline SinD, CosD, etc.
share/runtime/globals.hpp
InlineMethodsWithExceptionHandlersboolc1truedevelop
Inline methods containing exception handlers 
(NOTE: does not work with current backend)
share/c1/c1_globals.hpp
InlineNIOCheckIndexboolc1truediagnostic
Intrinsify java.nio.Buffer.checkIndex
share/c1/c1_globals.hpp
InlineNativesboolruntimetruediagnostic
Inline natives that are known to be part of base library DLL
share/runtime/globals.hpp
InlineObjectCopyboolc2truediagnostic
inline Object.clone and Arrays.copyOf[Range] intrinsics
share/opto/c2_globals.hpp
InlineObjectHashboolruntimetruediagnostic
Inline Object::hashCode() native that is known to be part 
of base library DLL
share/runtime/globals.hpp
InlineReflectionGetCallerClassboolc2truediagnostic
inline sun.reflect.Reflection.getCallerClass(), known to be 
part of base library DLL
share/opto/c2_globals.hpp
InlineSmallCodeintxaarch641000define_pd_global
cpu/aarch64/globals_aarch64.hpp
InlineSmallCodeintxarm1500define_pd_global
cpu/arm/globals_arm.hpp
InlineSmallCodeintxruntimeproduct_pd
Only inline already compiled methods if their code size is 
less than this
share/runtime/globals.hpp
InlineSmallCodeintxppc1500define_pd_global
cpu/ppc/globals_ppc.hpp
InlineSmallCodeintxs3902000define_pd_global
cpu/s390/globals_s390.hpp
InlineSmallCodeintxsparc1500define_pd_global
cpu/sparc/globals_sparc.hpp
InlineSmallCodeintxx861000define_pd_global
cpu/x86/globals_x86.hpp
InlineSmallCodeintxzero1000define_pd_global
cpu/zero/globals_zero.hpp
InlineSynchronizedMethodsboolc1trueproduct
Inline synchronized methods
share/c1/c1_globals.hpp
InlineThreadNativesboolruntimetruediagnostic
Inline Thread.currentThread, etc
share/runtime/globals.hpp
InlineThrowCountintxruntime50
range(0, max_jint)
develop
Force inlining of interpreted methods that throw this often
share/runtime/globals.hpp
InlineThrowMaxSizeintxruntime200
range(0, max_jint)
develop
Force inlining of throwing methods smaller than this
share/runtime/globals.hpp
InlineUnsafeOpsboolruntimetruediagnostic
Inline memory ops (native methods) from Unsafe
share/runtime/globals.hpp
InlineWarmCallsboolc2falsedevelop
Use a heat-based priority queue to govern inlining
share/opto/c2_globals.hpp
Inlineboolruntimetrueproduct
Enable inlining
share/runtime/globals.hpp
InsertEndGroupPPC64boolppcfalseproduct
Insert EndGroup instructions to optimize for Power6.
cpu/ppc/globals_ppc.hpp
InsertMemBarAfterArraycopyObsoleted in JDK16
Expired in JDK17
boolc2trueproduct
Insert memory barrier after arraycopy call
share/opto/c2_globals.hpp
InstallMethodsboolc1truedevelop
Install methods at the end of successful compilations
share/c1/c1_globals.hpp
InstructionCountCutoffintxc137000
range(0, max_jint)
develop
If GraphBuilder adds this many instructions, bails out
share/c1/c1_globals.hpp
InterceptOSExceptionboolruntimefalsedevelop
Start debugger when an implicit OS (e.g. NULL) 
exception happens
share/runtime/globals.hpp
InteriorEntryAlignmentintxaarch6416define_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
InteriorEntryAlignmentintxarm16define_pd_global
// = CodeEntryAlignment
cpu/arm/c2_globals_arm.hpp
InteriorEntryAlignmentintxc2product_pd
Code alignment for interior entry points 
in generated code (in bytes)
share/opto/c2_globals.hpp
InteriorEntryAlignmentintxppc16define_pd_global
cpu/ppc/c2_globals_ppc.hpp
InteriorEntryAlignmentintxs3902define_pd_global
cpu/s390/c2_globals_s390.hpp
InteriorEntryAlignmentintxsparc16define_pd_global
// = CodeEntryAlignment
cpu/sparc/c2_globals_sparc.hpp
InteriorEntryAlignmentintxx864define_pd_global
cpu/x86/c2_globals_x86.hpp
InterpreterProfilePercentageintxruntime33
range(0, 100)
product
NON_TIERED number of method invocations/branches (expressed as 
% of CompileThreshold) before profiling in the interpreter
share/runtime/globals.hpp
JVMCICounterSizeintxjvmci0
range(0, 1000000)
experimental
Reserved size for benchmark counters
share/jvmci/jvmci_globals.hpp
JVMCICountersExcludeCompilerbooljvmcitrueexperimental
Exclude JVMCI compiler threads from benchmark counters
share/jvmci/jvmci_globals.hpp
JVMCIHostThreadsintxjvmci1
range(0, max_jint))
experimental
Force number of compiler threads for JVMCI host compiler
share/jvmci/jvmci_globals.hpp
JVMCINMethodSizeLimitintxjvmci(80*K)*wordSize
range(0, max_jint)
experimental
Maximum size of a compiled method.
share/jvmci/jvmci_globals.hpp
JVMCIPrintPropertiesbooljvmcifalseexperimental
Prints properties used by the JVMCI compiler and exits
share/jvmci/jvmci_globals.hpp
JVMCIThreadsintxjvmci1
range(1, max_jint)
experimental
Force number of JVMCI compiler threads to use
share/jvmci/jvmci_globals.hpp
JVMCITraceLevelintxjvmci0
range(0, 6)
experimental
Trace level for JVMCI: 

1 means emit a message for each CompilerToVM call,
levels greater than 1 provide progressively greater detail
share/jvmci/jvmci_globals.hpp
JVMCIUseFastLockingbooljvmcitruedevelop
Use fast inlined locking code
share/jvmci/jvmci_globals.hpp
JVMInvokeMethodSlacksize_taixppc8192define_pd_global
os_cpu/aix_ppc/globals_aix_ppc.hpp
JVMInvokeMethodSlackuintxbsdaarch648192define_pd_global
os_cpu/bsd_aarch64/globals_bsd_aarch64.hpp
JVMInvokeMethodSlacksize_tbsdx868192define_pd_global
os_cpu/bsd_x86/globals_bsd_x86.hpp
JVMInvokeMethodSlacksize_tbsdzero8192define_pd_global
os_cpu/bsd_zero/globals_bsd_zero.hpp
JVMInvokeMethodSlackuintxlinuxaarch648192define_pd_global
os_cpu/linux_aarch64/globals_linux_aarch64.hpp
JVMInvokeMethodSlacksize_tlinuxarm8192define_pd_global
os_cpu/linux_arm/globals_linux_arm.hpp
JVMInvokeMethodSlacksize_tlinuxppc8192define_pd_global
os_cpu/linux_ppc/globals_linux_ppc.hpp
JVMInvokeMethodSlacksize_tlinuxs3908192define_pd_global
os_cpu/linux_s390/globals_linux_s390.hpp
JVMInvokeMethodSlacksize_tlinuxsparc12288define_pd_global
os_cpu/linux_sparc/globals_linux_sparc.hpp
JVMInvokeMethodSlacksize_tlinuxx868192define_pd_global
os_cpu/linux_x86/globals_linux_x86.hpp
JVMInvokeMethodSlacksize_tlinuxzero8192define_pd_global
os_cpu/linux_zero/globals_linux_zero.hpp
JVMInvokeMethodSlacksize_truntimedevelop_pd
Stack space (bytes) required for JVM_InvokeMethod to complete
share/runtime/globals.hpp
JVMInvokeMethodSlacksize_tsolarissparc12288define_pd_global
os_cpu/solaris_sparc/globals_solaris_sparc.hpp
JVMInvokeMethodSlacksize_tsolarisx8610*Kdefine_pd_global
os_cpu/solaris_x86/globals_solaris_x86.hpp
JVMInvokeMethodSlackuintxwindowsaarch648192define_pd_global
os_cpu/windows_aarch64/globals_windows_aarch64.hpp
JVMInvokeMethodSlacksize_twindowsx868192define_pd_global
os_cpu/windows_x86/globals_windows_x86.hpp
JavaMonitorsInStackTraceboolruntimetrueproduct
Print information about Java monitor locks when the stacks are
dumped
share/runtime/globals.hpp
JavaPriority10_To_OSPriorityintxruntime-1
range(-1, 127)
product
Map Java priorities to OS priorities
share/runtime/globals.hpp
JavaPriority1_To_OSPriorityintxruntime-1
range(-1, 127)
product
Map Java priorities to OS priorities
share/runtime/globals.hpp
JavaPriority2_To_OSPriorityintxruntime-1
range(-1, 127)
product
Map Java priorities to OS priorities
share/runtime/globals.hpp
JavaPriority3_To_OSPriorityintxruntime-1
range(-1, 127)
product
Map Java priorities to OS priorities
share/runtime/globals.hpp
JavaPriority4_To_OSPriorityintxruntime-1
range(-1, 127)
product
Map Java priorities to OS priorities
share/runtime/globals.hpp
JavaPriority5_To_OSPriorityintxruntime-1
range(-1, 127)
product
Map Java priorities to OS priorities
share/runtime/globals.hpp
JavaPriority6_To_OSPriorityintxruntime-1
range(-1, 127)
product
Map Java priorities to OS priorities
share/runtime/globals.hpp
JavaPriority7_To_OSPriorityintxruntime-1
range(-1, 127)
product
Map Java priorities to OS priorities
share/runtime/globals.hpp
JavaPriority8_To_OSPriorityintxruntime-1
range(-1, 127)
product
Map Java priorities to OS priorities
share/runtime/globals.hpp
JavaPriority9_To_OSPriorityintxruntime-1
range(-1, 127)
product
Map Java priorities to OS priorities
share/runtime/globals.hpp
LIRFillDelaySlotsObsoleted in JDK15
Expired in JDK16
boolaarch64falsedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
LIRFillDelaySlotsObsoleted in JDK15
Expired in JDK16
boolarmfalsedefine_pd_global
cpu/arm/c1_globals_arm.hpp
LIRFillDelaySlotsObsoleted in JDK15
Expired in JDK16
boolc1product_pd
fill delays on on SPARC with LIR
share/c1/c1_globals.hpp
LIRFillDelaySlotsObsoleted in JDK15
Expired in JDK16
boolppcfalsedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
LIRFillDelaySlotsObsoleted in JDK15
Expired in JDK16
bools390falsedefine_pd_global
cpu/s390/c1_globals_s390.hpp
LIRFillDelaySlotsObsoleted in JDK15
Expired in JDK16
boolsparctruedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
LIRFillDelaySlotsObsoleted in JDK15
Expired in JDK16
boolx86falsedefine_pd_global
cpu/x86/c1_globals_x86.hpp
LIRTraceExecutionboolc1falsedevelop
add LIR code which logs the execution of blocks
share/c1/c1_globals.hpp
LIRTracePeepholeboolc1falsedevelop
Trace peephole optimizer
share/c1/c1_globals.hpp
LargePageHeapSizeThresholdsize_truntime128*M
range(0, max_uintx)
product
Use large pages if maximum heap is at least this big
share/runtime/globals.hpp
LargePageSizeInBytessize_truntime0
range(0, max_uintx)
product
Large page size (0 to let VM choose the page size)
share/runtime/globals.hpp
LargePagesIndividualAllocationInjectErrorboolruntimefalsedevelop
Fail large pages individual allocation
share/runtime/globals.hpp
LiveNodeCountInliningCutoffintxc240000
range(0, max_juint / 8)
product
max number of live nodes in a method
share/opto/c2_globals.hpp
LoadExecStackDllInVMThreadboollinuxtrueproduct
Load DLLs with executable-stack attribute in the VM Thread
os/linux/globals_linux.hpp
LoadLineNumberTablesboolruntimetruedevelop
Tell whether the class file parser loads line number tables
share/runtime/globals.hpp
LoadLocalVariableTablesboolruntimetruedevelop
Tell whether the class file parser loads local variable tables
share/runtime/globals.hpp
LoadLocalVariableTypeTablesboolruntimetruedevelop
Tell whether the class file parser loads local variable type
tables
share/runtime/globals.hpp
LogCompilationboolruntimefalsediagnostic
Log compilation activity in detail to LogFile
share/runtime/globals.hpp
LogEventsBufferEntriesuintxruntime20
range(1, NOT_LP64(1*K) LP64_ONLY(1*M))
diagnostic
Number of ring buffer event logs
share/runtime/globals.hpp
LogEventsboolruntimetruediagnostic
Enable the various ring buffer event logs
share/runtime/globals.hpp
LogFileccstrruntimeNULLdiagnostic
If LogVMOutput or LogCompilation is on, save VM output to 
this file [default: ./hotspot_pid%p.log] (%p replaced with pid)
share/runtime/globals.hpp
LogSweeperboolruntimefalsenotproduct
Keep a ring buffer of sweeper activity
share/runtime/globals.hpp
LogTouchedMethodsboolruntimefalsediagnostic
Log methods which have been ever touched in runtime
share/runtime/globals.hpp
LogVMOutputboolruntimefalsediagnostic
Save VM output to LogFile
share/runtime/globals.hpp
LongCompileThresholdintxruntime50develop
Used with +TraceLongCompiles
share/runtime/globals.hpp
LoopMaxUnrollintxc216
range(0, max_jint)
product
Maximum number of unrolls for main loop
share/opto/c2_globals.hpp
LoopOptsCountintxc243
range(5, 43)
product
Set level of loop optimization for tier 1 compiles
share/opto/c2_globals.hpp
LoopPercentProfileLimitintxaarch6410define_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
LoopPercentProfileLimitintxc2product_pd
Unroll loop bodies with % node count of profile limit
share/opto/c2_globals.hpp
LoopPercentProfileLimitintxppc10define_pd_global
cpu/ppc/c2_globals_ppc.hpp
LoopPercentProfileLimitintxs39010define_pd_global
cpu/s390/c2_globals_s390.hpp
LoopPercentProfileLimitintxsparc10define_pd_global
cpu/sparc/c2_globals_sparc.hpp
LoopPercentProfileLimitintxx8610define_pd_global
cpu/x86/c2_globals_x86.hpp
LoopStripMiningIterShortLoopuintxc20
range(0, max_juint)
product
Loop with fewer iterations are not strip mined
share/opto/c2_globals.hpp
LoopStripMiningIteruintxc20
range(0, max_juint)
product
Number of iterations in strip mined loop
share/opto/c2_globals.hpp
LoopUnrollLimitintxaarch6460define_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
LoopUnrollLimitintxc2product_pd
Unroll loop bodies with node count less than this
share/opto/c2_globals.hpp
LoopUnrollLimitintxppc60define_pd_global
cpu/ppc/c2_globals_ppc.hpp
LoopUnrollLimitintxs39060define_pd_global
cpu/s390/c2_globals_s390.hpp
LoopUnrollLimitintxsparc60define_pd_global
// Design center runs on 1.3.1
cpu/sparc/c2_globals_sparc.hpp
LoopUnrollLimitintxx8650define_pd_global
// Design center runs on 1.3.1
cpu/x86/c2_globals_x86.hpp
LoopUnrollMinintxc24
range(0, max_jint)
product
Minimum number of unroll loop bodies before checking progress
of rounds of unroll,optimize,..
share/opto/c2_globals.hpp
LoopUnswitchingboolc2trueproduct
Enable loop unswitching (a form of invariant test hoisting)
share/opto/c2_globals.hpp
MVCLEThresholdsize_ts390+2*(4*K)product
Threshold above which page-aligned MVCLE copy/init is used.
cpu/s390/globals_s390.hpp
MallocCatchPtrintxruntime-1develop
Hit breakpoint when mallocing/freeing this pointer
share/runtime/globals.hpp
MallocMaxTestWordsuintxruntime0
range(0, max_uintx)
diagnostic
If non-zero, maximum number of words that malloc/realloc can 
allocate (for testing only)
share/runtime/globals.hpp
ManagementServerboolruntimefalseproduct
Create JMX Management Server
share/runtime/globals.hpp
MarkStackSizeMaxsize_tgcNOT_LP64(4*M) LP64_ONLY(512*M)
range(1, (max_jint - 1))
product
Maximum size of marking stack
share/gc/shared/gc_globals.hpp
MarkStackSizesize_tgcNOT_LP64(32*K) LP64_ONLY(4*M)product
Size of marking stack
share/gc/shared/gc_globals.hpp
MarkSweepAlwaysCompactCountuintgc4
range(1, max_juint)
product
How often should we fully compact the heap (ignoring the dead 
space parameters)
share/gc/shared/gc_globals.hpp
MarkSweepDeadRatiouintxgc5
range(0, 100)
product
Percentage (0-100) of the old gen allowed as dead wood. 
Serial mark sweep treats this as both the minimum and maximum 
value. 
CMS uses this value only if it falls back to mark sweep. 
Par compact uses a variable scale based on the density of the 
generation and treats this as the maximum value when the heap 
is either completely full or completely empty. Par compact 
also has a smaller default value; see arguments.cpp.
share/gc/shared/gc_globals.hpp
MaxBCEAEstimateLevelintxruntime5
range(0, max_jint)
product
Maximum number of nested calls that are analyzed by BC EA
share/runtime/globals.hpp
MaxBCEAEstimateSizeintxruntime150
range(0, max_jint)
product
Maximum bytecode size of a method to be analyzed by BC EA
share/runtime/globals.hpp
MaxDirectMemorySizeuint64_truntime0
range(0, max_jlong)
product
Maximum total size of NIO direct-buffer allocations
share/runtime/globals.hpp
MaxElementPrintSizeintxruntime256notproduct
maximum number of elements to print
share/runtime/globals.hpp
MaxExpectedDataSegmentSizeuintxaix8*Gproduct
Maximum expected Data Segment Size.
os/aix/globals_aix.hpp
MaxFDLimitboolruntimetrueproduct
Bump the number of file descriptors to maximum in Solaris
share/runtime/globals.hpp
MaxForceInlineLevelintxruntime100
range(0, max_jint)
develop
maximum number of nested calls that are forced for inlining 
(using CompileCommand or marked w/ @ForceInline)
share/runtime/globals.hpp
MaxGCMinorPauseMillisDeprecated in JDK8
Obsoleted in JDK23
Expired in JDK24
uintxgcmax_uintx
range(0, max_uintx)
product
Adaptive size policy maximum GC minor pause time goal 
in millisecond
share/gc/shared/gc_globals.hpp
MaxGCPauseMillisuintxgcmax_uintx - 1
range(1, max_uintx - 1)
product
Adaptive size policy maximum GC pause time goal in millisecond, 
or (G1 Only) the maximum GC time per MMU time slice
share/gc/shared/gc_globals.hpp
MaxHeapFreeRatiouintxruntime70
range(0, 100)
manageable
The maximum percentage of heap free after GC to avoid shrinking.
 For most GCs this applies to the old generation. In G1 and
 ParallelGC it applies to the whole heap.
share/runtime/globals.hpp
MaxHeapSizesize_tgcScaleForWordSize(96*M)product
Maximum heap size (in bytes)
share/gc/shared/gc_globals.hpp
MaxInlineLevelintxruntime15
range(0, max_jint)
product
maximum number of nested calls that are inlined
share/runtime/globals.hpp
MaxInlineSizeintxruntime35
range(0, max_jint)
product
The maximum bytecode size of a method to be inlined
share/runtime/globals.hpp
MaxInterpretedSearchLengthintxruntime3develop
The maximum number of interpreted frames to skip when searching 
for recompilee
share/runtime/globals.hpp
MaxJNILocalCapacityintxruntime65536
range(min_intx, max_intx)
product
Maximum allowable local JNI handle capacity to 
EnsureLocalCapacity() and PushLocalFrame(), 
where <= 0 is unlimited, default: 65536
share/runtime/globals.hpp
MaxJavaStackTraceDepthintxruntime1024
range(0, max_jint/2)
product
The maximum number of lines in the stack trace for Java 
exceptions (0 means all)
share/runtime/globals.hpp
MaxJumpTableSizeintxc265000
range(0, max_intx)
product
Maximum number of targets in a generated jump table
share/opto/c2_globals.hpp
MaxJumpTableSparsenessintxc25
range(0, max_intx / 4)
product
Maximum sparseness for jumptables
share/opto/c2_globals.hpp
MaxLabelRootDepthintxc21100
range(100, max_jint)
product
Maximum times call Label_Root to prevent stack overflow
share/opto/c2_globals.hpp
MaxLoopPadintxc2(OptoLoopAlignment-1)
range(0, max_jint)
product
Align a loop if padding size in bytes is less or equal to this 
value
share/opto/c2_globals.hpp
MaxMetaspaceExpansionsize_truntimeScaleForWordSize(4*M)
range(0, max_uintx)
product
The maximum expansion of Metaspace without full GC (in bytes)
share/runtime/globals.hpp
MaxMetaspaceFreeRatiouintxruntime70
range(0, 100)
product
The maximum percentage of Metaspace free after GC to avoid 
shrinking
share/runtime/globals.hpp
MaxMetaspaceSizesize_truntimemax_uintxproduct
Maximum size of Metaspaces (in bytes)
share/runtime/globals.hpp
MaxNewSizesize_tgcmax_uintx
range(0, max_uintx)
product
Maximum new generation size (in bytes), max_uintx means set 
ergonomically
share/gc/shared/gc_globals.hpp
MaxNodeLimitintxc280000
range(1000, max_jint / 3)
product
Maximum number of nodes
share/opto/c2_globals.hpp
MaxRAMFractionDeprecated in JDK10
Obsoleted in JDK23
Expired in JDK24
uintxgc4
range(1, max_uintx)
product
Maximum fraction (1/n) of real memory used for maximum heap 
size. 
Deprecated, use MaxRAMPercentage instead
share/gc/shared/gc_globals.hpp
MaxRAMPercentagedoublegc25.0
range(0.0, 100.0)
product
Maximum percentage of real memory used for maximum heap size
share/gc/shared/gc_globals.hpp
MaxRAMuint64_taarch641ULL*Gdefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
MaxRAMuint64_tarm1ULL*Gdefine_pd_global
cpu/arm/c1_globals_arm.hpp
MaxRAMuint64_tgcproduct_pd
Real memory size (in bytes) used to set maximum heap size
share/gc/shared/gc_globals.hpp
MaxRAMuint64_truntime1ULL*Gdefine_pd_global
share/runtime/globals.hpp
MaxRAMuint64_tppc1ULL*Gdefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
MaxRAMuint64_ts390128ULL*Gdefine_pd_global
cpu/s390/c2_globals_s390.hpp
MaxRAMuint64_tsparc1ULL*Gdefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
MaxRAMuint64_tx861ULL*Gdefine_pd_global
cpu/x86/c1_globals_x86.hpp
MaxRecompilationSearchLengthintxruntime10develop
The maximum number of frames to inspect when searching for 
recompilee
share/runtime/globals.hpp
MaxRecursiveInlineLevelintxruntime1
range(0, max_jint)
product
maximum number of nested recursive calls that are inlined
share/runtime/globals.hpp
MaxSubklassPrintSizeintxruntime4notproduct
maximum number of subklasses to print when printing klass
share/runtime/globals.hpp
MaxTenuringThresholduintxgc15
range(0, markOopDesc::max_age + 1)
product
Maximum value for tenuring threshold
share/gc/shared/gc_globals.hpp
MaxTrivialSizeintxruntime6
range(0, max_jint)
product
The maximum bytecode size of a trivial method to be inlined
share/runtime/globals.hpp
MaxVectorSizeintxc264
range(0, max_jint)
product
Max vector size in bytes, 
actual size could be less depending on elements type
share/opto/c2_globals.hpp
MaxVirtMemFractionuintxgc2develop
Maximum fraction (1/n) of virtual memory used for ergonomically 
determining maximum heap size
share/gc/shared/gc_globals.hpp
MemProfilingIntervalintxruntime500notproduct
Time between each invocation of the MemProfiler
share/runtime/globals.hpp
MemProfilingboolruntimefalsedevelop
Write memory usage profiling to log file
share/runtime/globals.hpp
MetadataAllocationFailALotIntervaluintxgc1000develop
Metadata allocation failure a lot interval
share/gc/shared/gc_globals.hpp
MetadataAllocationFailALotboolgcfalsedevelop
Fail metadata allocations at intervals controlled by 
MetadataAllocationFailALotInterval
share/gc/shared/gc_globals.hpp
MetaspaceSizeuintxaarch6412*Mdefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
MetaspaceSizesize_tarm12*Mdefine_pd_global
cpu/arm/c1_globals_arm.hpp
MetaspaceSizesize_truntimeproduct_pd
Initial threshold (in bytes) at which a garbage collection 
is done to reduce Metaspace usage
share/runtime/globals.hpp
MetaspaceSizesize_tppc12*Mdefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
MetaspaceSizesize_ts390ScaleForWordSize(16*M)define_pd_global
cpu/s390/c2_globals_s390.hpp
MetaspaceSizesize_tsparc12*Mdefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
MetaspaceSizesize_tx8612*Mdefine_pd_global
cpu/x86/c1_globals_x86.hpp
MethodFlushingboolruntimetrueproduct
Reclamation of zombie and not-entrant methods
share/runtime/globals.hpp
MethodHistogramCutoffintxruntime100develop
The cutoff value for method invocation histogram (+CountCalls)
share/runtime/globals.hpp
MethodProfileWidthintxjvmci0experimental
Number of methods to record in call profile
share/jvmci/jvmci_globals.hpp
MinHeapDeltaBytessize_truntimeScaleForWordSize(128*K)
range(0, max_uintx)
product
The minimum change in heap space due to GC (in bytes)
share/runtime/globals.hpp
MinHeapFreeRatiouintxruntime40
range(0, 100)
manageable
The minimum percentage of heap free after GC to avoid expansion.
 For most GCs this applies to the old generation. In G1 and
 ParallelGC it applies to the whole heap.
share/runtime/globals.hpp
MinInliningThresholdDeprecated in JDK18
Obsoleted in JDK19
Expired in JDK20
intxruntime250
range(0, max_jint)
product
The minimum invocation count a method needs to have to be 
inlined
share/runtime/globals.hpp
MinJumpTableSizeintxaarch6410define_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
MinJumpTableSizeintxc2product_pd
Minimum number of targets in a generated jump table
share/opto/c2_globals.hpp
MinJumpTableSizeintxppc10define_pd_global
cpu/ppc/c2_globals_ppc.hpp
MinJumpTableSizeintxs39018define_pd_global
cpu/s390/c2_globals_s390.hpp
MinJumpTableSizeintxsparc5define_pd_global
cpu/sparc/c2_globals_sparc.hpp
MinJumpTableSizeintxx8610define_pd_global
cpu/x86/c2_globals_x86.hpp
MinMetaspaceExpansionsize_truntimeScaleForWordSize(256*K)
range(0, max_uintx)
product
The minimum expansion of Metaspace (in bytes)
share/runtime/globals.hpp
MinMetaspaceFreeRatiouintxruntime40
range(0, 99)
product
The minimum percentage of Metaspace free after GC to avoid 
expansion
share/runtime/globals.hpp
MinOopMapAllocationintxruntime8develop
Minimum number of OopMap entries in an OopMapSet
share/runtime/globals.hpp
MinPassesBeforeFlushintxruntime10
range(0, max_intx)
diagnostic
Minimum number of sweeper passes before an nmethod 
can be flushed
share/runtime/globals.hpp
MinRAMFractionDeprecated in JDK10
Obsoleted in JDK23
Expired in JDK24
uintxgc2
range(1, max_uintx)
product
Minimum fraction (1/n) of real memory used for maximum heap 
size on systems with small physical memory size. 
Deprecated, use MinRAMPercentage instead
share/gc/shared/gc_globals.hpp
MinRAMPercentagedoublegc50.0
range(0.0, 100.0)
product
Minimum percentage of real memory used for maximum heap
size on systems with small physical memory size
share/gc/shared/gc_globals.hpp
MinSurvivorRatiouintxgc3
range(3, max_uintx)
product
Minimum ratio of young generation/survivor space size
share/gc/shared/gc_globals.hpp
MinTLABSizesize_tgc2*K
range(1, max_uintx/2)
product
Minimum allowed TLAB size (in bytes)
share/gc/shared/gc_globals.hpp
MonitorBoundDeprecated in JDK14
Obsoleted in JDK15
Expired in JDK16
intxruntime0
range(0, max_jint)
product
Bound Monitor population
share/runtime/globals.hpp
MonitorInUseListsDeprecated in JDK10
Obsoleted in JDK12
Expired in JDK13
boolruntimetrueproduct
Track Monitors for Deflation
share/runtime/globals.hpp
MonitorUsedDeflationThresholdintxruntime90
range(0, 100)
experimental
Percentage of used monitors before triggering cleanup 
safepoint which deflates monitors (0 is off). 
The check is performed on GuaranteedSafepointInterval.
share/runtime/globals.hpp
MonomorphicArrayCheckboolc2truedevelop
Uncommon-trap array store checks that require full type check
share/opto/c2_globals.hpp
MultiArrayExpandLimitintxc26
range(0, max_jint)
product
Maximum number of individual allocations in an inline-expanded 
multianewarray instruction
share/opto/c2_globals.hpp
NMethodSizeLimitintxc1(64*K)*wordSize
range(0, max_jint)
develop
Maximum size of a compiled method.
share/c1/c1_globals.hpp
NUMAChunkResizeWeightuintxruntime20
range(0, 100)
product
Percentage (0-100) used to weight the current sample when 
computing exponentially decaying average for 
AdaptiveNUMAChunkSizing
share/runtime/globals.hpp
NUMAInterleaveGranularitysize_truntime2*M
range(os::vm_allocation_granularity(), NOT_LP64(2*G) LP64_ONLY(8192*G))
product
Granularity to use for NUMA interleaving on Windows OS
share/runtime/globals.hpp
NUMAPageScanRateObsoleted in JDK23
Expired in JDK24
uintxruntime256
range(0, max_uintx)
product
Maximum number of pages to include in the page scan procedure
share/runtime/globals.hpp
NUMASpaceResizeRatesize_truntime1*G
range(0, max_uintx)
product
Do not reallocate more than this amount per collection
share/runtime/globals.hpp
NUMAStatsboolruntimefalseproduct
Print NUMA stats in detailed heap information
share/runtime/globals.hpp
NativeMemoryTrackingccstrruntimeoffproduct
Native memory tracking options
share/runtime/globals.hpp
NearCpoolboolaarch64trueproduct
constant pool is close to instructions
cpu/aarch64/globals_aarch64.hpp
NeedsDeoptSuspendObsoleted in JDK13
Expired in JDK14
boolaarch64falsedefine_pd_global
// only register window machines need this
cpu/aarch64/globals_aarch64.hpp
NeedsDeoptSuspendObsoleted in JDK13
Expired in JDK14
boolarmfalsedefine_pd_global
// only register window machines need this
cpu/arm/globals_arm.hpp
NeedsDeoptSuspendObsoleted in JDK13
Expired in JDK14
boolruntimeproduct_pd
True for register window machines (sparc/ia64)
share/runtime/globals.hpp
NeedsDeoptSuspendObsoleted in JDK13
Expired in JDK14
boolppcfalsedefine_pd_global
// Only register window machines need this.
cpu/ppc/globals_ppc.hpp
NeedsDeoptSuspendObsoleted in JDK13
Expired in JDK14
bools390falsedefine_pd_global
// Only register window machines need this.
cpu/s390/globals_s390.hpp
NeedsDeoptSuspendObsoleted in JDK13
Expired in JDK14
boolsparctruedefine_pd_global
// register window machines need this
cpu/sparc/globals_sparc.hpp
NeedsDeoptSuspendObsoleted in JDK13
Expired in JDK14
boolx86falsedefine_pd_global
// only register window machines need this
cpu/x86/globals_x86.hpp
NeedsDeoptSuspendObsoleted in JDK13
Expired in JDK14
boolzerofalsedefine_pd_global
cpu/zero/globals_zero.hpp
NestedInliningSizeRatiointxc190
range(0, 100)
develop
Percentage of prev. allowed inline size in recursive inlining
share/c1/c1_globals.hpp
NeverActAsServerClassMachineboolaarch64truedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
NeverActAsServerClassMachineboolarmtruedefine_pd_global
cpu/arm/c1_globals_arm.hpp
NeverActAsServerClassMachineboolgcproduct_pd
Never act like a server-class machine
share/gc/shared/gc_globals.hpp
NeverActAsServerClassMachineboolruntimetruedefine_pd_global
share/runtime/globals.hpp
NeverActAsServerClassMachineboolppctruedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
NeverActAsServerClassMachinebools390falsedefine_pd_global
cpu/s390/c2_globals_s390.hpp
NeverActAsServerClassMachineboolsparctruedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
NeverActAsServerClassMachineboolx86truedefine_pd_global
cpu/x86/c1_globals_x86.hpp
NeverTenureboolgcfalseproduct
Never tenure objects in eden, may tenure on overflow 
(ParallelGC only)
share/gc/shared/gc_globals.hpp
NewCodeParameterintxruntime0develop
Testing Only: Create a dedicated integer parameter before 
putback
share/runtime/globals.hpp
NewRatiouintxgc2
range(0, max_uintx-1)
product
Ratio of old/new generation sizes
share/gc/shared/gc_globals.hpp
NewSizeThreadIncreaseintxaarch644*Kdefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
NewSizeThreadIncreasesize_tarmScaleForWordSize(4*K)define_pd_global
cpu/arm/c2_globals_arm.hpp
NewSizeThreadIncreasesize_tgcproduct_pd
Additional size added to desired new generation size per 
non-daemon thread (in bytes)
share/gc/shared/gc_globals.hpp
NewSizeThreadIncreasesize_truntime4*Kdefine_pd_global
share/runtime/globals.hpp
NewSizeThreadIncreasesize_tppc16*Kdefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
NewSizeThreadIncreasesize_ts390ScaleForWordSize(4*K)define_pd_global
cpu/s390/c2_globals_s390.hpp
NewSizeThreadIncreasesize_tsparc16*Kdefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
NewSizeThreadIncreasesize_tx864*Kdefine_pd_global
cpu/x86/c1_globals_x86.hpp
NewSizesize_tgcScaleForWordSize(1*M)product
Initial new generation size (in bytes)
share/gc/shared/gc_globals.hpp
NmethodSweepActivityintxruntime10
range(0, 2000)
product
Removes cold nmethods from code cache if > 0. Higher values 
result in more aggressive sweeping
share/runtime/globals.hpp
NodeCountInliningCutoffintxc218000
range(0, max_jint)
develop
If parser node generation exceeds limit stop inlining
share/opto/c2_globals.hpp
NodeCountInliningStepintxc21000
range(0, max_jint)
develop
Target size of warm calls inlined between optimization passes
share/opto/c2_globals.hpp
NodeLimitFudgeFactorintxc22000product
Fudge Factor for certain optimizations
share/opto/c2_globals.hpp
NonNMethodCodeHeapSizeintxaarch645*Mdefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
NonNMethodCodeHeapSizesize_tarm5*Mdefine_pd_global
cpu/arm/c1_globals_arm.hpp
NonNMethodCodeHeapSizeuintxruntimeproduct_pd
Size of code heap with non-nmethods (in bytes)
share/runtime/globals.hpp
NonNMethodCodeHeapSizeuintxppc5*Mdefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
NonNMethodCodeHeapSizeuintxs3905*Mdefine_pd_global
cpu/s390/c2_globals_s390.hpp
NonNMethodCodeHeapSizeuintxsparc5*Mdefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
NonNMethodCodeHeapSizeuintxx865*Mdefine_pd_global
cpu/x86/c1_globals_x86.hpp
NonProfiledCodeHeapSizeintxaarch6413*Mdefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
NonProfiledCodeHeapSizesize_tarm13*Mdefine_pd_global
cpu/arm/c1_globals_arm.hpp
NonProfiledCodeHeapSizeuintxruntimeproduct_pd
Size of code heap with non-profiled methods (in bytes)
share/runtime/globals.hpp
NonProfiledCodeHeapSizeuintxppc13*Mdefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
NonProfiledCodeHeapSizeuintxs39021*Mdefine_pd_global
cpu/s390/c2_globals_s390.hpp
NonProfiledCodeHeapSizeuintxsparc13*Mdefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
NonProfiledCodeHeapSizeuintxx8613*Mdefine_pd_global
cpu/x86/c1_globals_x86.hpp
NumberOfLoopInstrToAlignintxc24
range(0, max_jint)
product
Number of first instructions in a loop to align
share/opto/c2_globals.hpp
OSROnlyBCIintxruntime-1develop
OSR only at this bci. Negative values mean exclude that bci
share/runtime/globals.hpp
ObjArrayMarkingStrideuintxgc2048develop
Number of object array elements to push onto the marking stack 
before pushing a continuation entry
share/gc/shared/gc_globals.hpp
ObjectAlignmentInBytesintxruntime8
range(8, 256)
lp64_product
Default object alignment in bytes, 8 is minimum
share/runtime/globals.hpp
ObjectCountCutOffPercentdoubleruntime0.5
range(0.0, 100.0)
experimental
The percentage of the used heap that the instances of a class 
must occupy for the class to generate a trace event
share/runtime/globals.hpp
OldPLABSizesize_tgc1024product
Size of old gen promotion LAB's (in HeapWords), or Number 
of blocks to attempt to claim when refilling CMS LAB's
share/gc/shared/gc_globals.hpp
OldPLABWeightObsoleted in JDK14
Expired in JDK15
uintxgc50
range(0, 100)
product
Percentage (0-100) used to weight the current sample when 
computing exponentially decaying average for resizing 
OldPLABSize
share/gc/shared/gc_globals.hpp
OldSizeDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
size_tgcScaleForWordSize(4*M)
range(0, max_uintx)
product
Initial tenured generation size (in bytes)
share/gc/shared/gc_globals.hpp
OmitStackTraceInFastThrowboolruntimetrueproduct
Omit backtraces for some 'hot' exceptions in optimized code
share/runtime/globals.hpp
OnErrorccstrlistruntime
product
Run user-defined commands on fatal error; see VMError.cpp 
for examples
share/runtime/globals.hpp
OnOutOfMemoryErrorccstrlistruntime
product
Run user-defined commands on first java.lang.OutOfMemoryError
share/runtime/globals.hpp
OnStackReplacePercentageintxaarch64933define_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
OnStackReplacePercentageintxarm140define_pd_global
cpu/arm/c2_globals_arm.hpp
OnStackReplacePercentageintxruntimeproduct_pd
NON_TIERED number of method invocations/branches (expressed as 
% of CompileThreshold) before (re-)compiling OSR code
share/runtime/globals.hpp
OnStackReplacePercentageintxppc1400define_pd_global
cpu/ppc/c1_globals_ppc.hpp
OnStackReplacePercentageintxs390140define_pd_global
cpu/s390/c2_globals_s390.hpp
OnStackReplacePercentageintxsparc1400define_pd_global
cpu/sparc/c1_globals_sparc.hpp
OnStackReplacePercentageintxx86933define_pd_global
cpu/x86/c1_globals_x86.hpp
OptimizeExpensiveOpsboolc2truediagnostic
Find best control for expensive operations
share/opto/c2_globals.hpp
OptimizeFillboolc2true PPC64_ONLY(&& false)product
convert fill/copy loops into intrinsic
share/opto/c2_globals.hpp
OptimizeIfOpsboolc1truedevelop
Optimize multiple IfOps
share/c1/c1_globals.hpp
OptimizePollingPageLocationboolaixtrueproduct
Optimize the location of the polling page used for Safepoints
os/aix/globals_aix.hpp
OptimizePtrCompareboolc2trueproduct
Use escape analysis to optimize pointers compare
share/opto/c2_globals.hpp
OptimizeSinglePrecisionboolaarch64truedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
OptimizeSinglePrecisionboolarmtruedefine_pd_global
cpu/arm/c1_globals_arm.hpp
OptimizeSinglePrecisionboolppcfalsedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
OptimizeSinglePrecisionbools390falsedefine_pd_global
cpu/s390/c1_globals_s390.hpp
OptimizeSinglePrecisionboolsparcfalsedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
OptimizeSinglePrecisionboolx86truedefine_pd_global
cpu/x86/c1_globals_x86.hpp
OptimizeStringConcatboolc2trueproduct
Optimize the construction of Strings by StringBuilder
share/opto/c2_globals.hpp
OptimizeUnsafesboolc1truedevelop
Optimize raw unsafe ops
share/c1/c1_globals.hpp
OptoBlockListSizeintxc28
range(0, max_jint)
develop
Starting allocation size of Block_List data structures
share/opto/c2_globals.hpp
OptoBreakpointC2Rboolc2falsenotproduct
insert breakpoint at runtime stub entry
share/opto/c2_globals.hpp
OptoBreakpointOSRboolc2falsenotproduct
insert breakpoint at osr method entry
share/opto/c2_globals.hpp
OptoBreakpointboolc2falsedevelop
insert breakpoint at method entry
share/opto/c2_globals.hpp
OptoBundlingboolaarch64falsedefine_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
OptoBundlingboolc2product_pd
Generate nops to fill i-cache lines
share/opto/c2_globals.hpp
OptoBundlingboolppcfalsedefine_pd_global
cpu/ppc/c2_globals_ppc.hpp
OptoBundlingbools390falsedefine_pd_global
cpu/s390/c2_globals_s390.hpp
OptoBundlingboolsparcfalsedefine_pd_global
cpu/sparc/c2_globals_sparc.hpp
OptoBundlingboolx86falsedefine_pd_global
cpu/x86/c2_globals_x86.hpp
OptoCoalesceboolc2truedevelop
Use Conservative Copy Coalescing in the Register Allocator
share/opto/c2_globals.hpp
OptoLoopAlignmentintxaarch6416define_pd_global
cpu/aarch64/globals_aarch64.hpp
OptoLoopAlignmentintxarm16define_pd_global
cpu/arm/globals_arm.hpp
OptoLoopAlignmentintxruntimeproduct_pd
Align inner loops to zero relative to this modulus
share/runtime/globals.hpp
OptoLoopAlignmentintxppc16define_pd_global
cpu/ppc/globals_ppc.hpp
OptoLoopAlignmentintxs3902define_pd_global
cpu/s390/globals_s390.hpp
OptoLoopAlignmentintxsparc16define_pd_global
// = 4*wordSize
cpu/sparc/globals_sparc.hpp
OptoLoopAlignmentintxx8616define_pd_global
cpu/x86/globals_x86.hpp
OptoLoopAlignmentintxzero16define_pd_global
cpu/zero/globals_zero.hpp
OptoNoExecuteboolc2falsenotproduct
Attempt to parse and compile but do not execute generated code
share/opto/c2_globals.hpp
OptoNodeListSizeintxc24
range(0, max_jint)
develop
Starting allocation size of Node_List data structures
share/opto/c2_globals.hpp
OptoPeepholeAtintxc2-1develop
Apply peephole optimizations to this peephole rule
share/opto/c2_globals.hpp
OptoPeepholeboolaarch64falsedefine_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
OptoPeepholeboolc2develop_pd
Apply peephole optimizations after register allocation
share/opto/c2_globals.hpp
OptoPeepholeboolppcfalsedefine_pd_global
cpu/ppc/c2_globals_ppc.hpp
OptoPeepholebools390falsedefine_pd_global
cpu/s390/c2_globals_s390.hpp
OptoPeepholeboolsparcfalsedefine_pd_global
cpu/sparc/c2_globals_sparc.hpp
OptoPeepholeboolx86truedefine_pd_global
cpu/x86/c2_globals_x86.hpp
OptoPrologueNopsintxc20
range(0, 128)
develop
Insert this many extra nop instructions 
in the prologue of every nmethod
share/opto/c2_globals.hpp
OptoRegSchedulingboolaarch64falsedefine_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
OptoRegSchedulingboolc2product_pd
Instruction Scheduling before register allocation for pressure
share/opto/c2_globals.hpp
OptoRegSchedulingboolppcfalsedefine_pd_global
cpu/ppc/c2_globals_ppc.hpp
OptoRegSchedulingbools390falsedefine_pd_global
cpu/s390/c2_globals_s390.hpp
OptoRegSchedulingboolsparcfalsedefine_pd_global
cpu/sparc/c2_globals_sparc.hpp
OptoRegSchedulingboolx86truedefine_pd_global
cpu/x86/c2_globals_x86.hpp
OptoRemoveUselessboolc2truedevelop
Remove useless nodes after parsing
share/opto/c2_globals.hpp
OptoSchedulingboolaarch64falsedefine_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
OptoSchedulingboolc2product_pd
Instruction Scheduling after register allocation
share/opto/c2_globals.hpp
OptoSchedulingboolppcfalsedefine_pd_global
cpu/ppc/c2_globals_ppc.hpp
OptoSchedulingbools390falsedefine_pd_global
cpu/s390/c2_globals_s390.hpp
OptoSchedulingboolsparctruedefine_pd_global
cpu/sparc/c2_globals_sparc.hpp
OptoSchedulingboolx86falsedefine_pd_global
cpu/x86/c2_globals_x86.hpp
PLABWeightuintxgc75
range(0, 100)
product
Percentage (0-100) used to weight the current sample when 
computing exponentially decaying average for ResizePLAB
share/gc/shared/gc_globals.hpp
PSAdaptiveSizePolicyResizeVirtualSpaceAlotintxgc-1
range(-1, 1)
develop
Resize the virtual spaces of the young or old generations
share/gc/shared/gc_globals.hpp
PSChunkLargeArraysboolgctrueproduct
Process large arrays in chunks
share/gc/parallel/parallel_globals.hpp
ParGCArrayScanChunkintgc50
range(1, max_jint/3)
product
Scan a subset of object array and push remainder, if array is 
bigger than this
share/gc/shared/gc_globals.hpp
ParGCCardsPerStrideChunkintxgc256
range(1, max_intx)
diagnostic
The number of cards in each chunk of the parallel chunks used 
during card table scanning
share/gc/cms/cms_globals.hpp
ParGCDesiredObjsFromOverflowListObsoleted in JDK14
Expired in JDK15
uintxgc20
range(0, max_uintx)
product
The desired number of objects to claim from the overflow list
share/gc/cms/cms_globals.hpp
ParGCStridesPerThreaduintxgc2
range(1, max_uintx)
diagnostic
The number of strides per worker thread that we divide up the 
card table scanning work into
share/gc/cms/cms_globals.hpp
ParGCTrimOverflowObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Eagerly trim the local overflow lists 
(when ParGCUseLocalOverflow)
share/gc/cms/cms_globals.hpp
ParGCUseLocalOverflowObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
Instead of a global overflow list, use local overflow stacks
share/gc/cms/cms_globals.hpp
ParGCWorkQueueOverflowALotboolgcfalsenotproduct
Simulate work queue overflow in ParNew
share/gc/cms/cms_globals.hpp
ParGCWorkQueueOverflowIntervaluintxgc1000notproduct
An `interval' counter that determines how frequently 
we simulate overflow; a smaller number increases frequency
share/gc/cms/cms_globals.hpp
ParallelGCBufferWastePctuintxgc10
range(0, 100)
product
Wasted fraction of parallel allocation buffer
share/gc/shared/gc_globals.hpp
ParallelGCThreadsuintgc0product
Number of parallel threads parallel gc will use
share/gc/shared/gc_globals.hpp
ParallelOldDeadWoodLimiterMeanObsoleted in JDK23
Expired in JDK24
size_tgc50
range(0, 100)
product
The mean used by the parallel compact dead wood 
limiter (a number between 0-100)
share/gc/parallel/parallel_globals.hpp
ParallelOldDeadWoodLimiterStdDevObsoleted in JDK23
Expired in JDK24
size_tgc80
range(0, 100)
product
The standard deviation used by the parallel compact dead wood 
limiter (a number between 0-100)
share/gc/parallel/parallel_globals.hpp
ParallelRefProcBalancingEnabledboolgctrueproduct
Enable balancing of reference processing queues
share/gc/shared/gc_globals.hpp
ParallelRefProcEnabledboolgcfalseproduct
Enable parallel reference processing whenever possible
share/gc/shared/gc_globals.hpp
PartialPeelAtUnsignedTestsboolc2trueproduct
Partial peel at unsigned tests if no signed test exists
share/opto/c2_globals.hpp
PartialPeelLoopboolc2trueproduct
Partial peel (rotate) loops
share/opto/c2_globals.hpp
PartialPeelNewPhiDeltaintxc20
range(0, max_jint)
product
Additional phis that can be created by partial peeling
share/opto/c2_globals.hpp
PatchALotboolc1falsedevelop
Marks all fields as having unloaded classes
share/c1/c1_globals.hpp
PauseAtExitboolruntimefalsediagnostic
Pause and wait for keypress on exit if a debugger is attached
share/runtime/globals.hpp
PauseAtStartupFileccstrruntimeNULLdiagnostic
The file to create and for whose removal to await when pausing 
at startup. (default: ./vm.paused.)
share/runtime/globals.hpp
PauseAtStartupboolruntimefalsediagnostic
Causes the VM to pause at startup time and wait for the pause 
file to be removed (default: ./vm.paused.)
share/runtime/globals.hpp
PausePaddinguintxgc1
range(0, max_juint)
product
How much buffer to keep for pause time
share/gc/shared/gc_globals.hpp
PerBytecodeRecompilationCutoffintxruntime200
range(-1, max_intx)
product
Per-BCI limit on repeated recompilation (-1=>'Inf')
share/runtime/globals.hpp
PerBytecodeTrapLimitintxruntime4
range(0, max_jint)
product
Limit on traps (of one kind) at a particular BCI
share/runtime/globals.hpp
PerMethodRecompilationCutoffintxruntime400
range(-1, max_intx)
product
After recompiling N times, stay in the interpreter (-1=>'Inf')
share/runtime/globals.hpp
PerMethodSpecTrapLimitintxruntime5000
range(0, max_jint)
experimental
Limit on speculative traps (of one kind) in a method 
(includes inlines)
share/runtime/globals.hpp
PerMethodTrapLimitintxruntime100
range(0, max_jint)
product
Limit on traps (of one kind) in a method (includes inlines)
share/runtime/globals.hpp
PerfAllowAtExitRegistrationboolruntimefalseproduct
Allow registration of atexit() methods
share/runtime/globals.hpp
PerfBypassFileSystemCheckboolruntimefalseproduct
Bypass Win32 file system criteria checks (Windows Only)
share/runtime/globals.hpp
PerfDataMemorySizeintxruntime32*K
range(128, 32*64*K)
product
Size of performance data memory region. Will be rounded 
up to a multiple of the native os page size.
share/runtime/globals.hpp
PerfDataSamplingIntervalintxruntime50
range(PeriodicTask::min_interval, max_jint)
product
Data sampling interval (in milliseconds)
share/runtime/globals.hpp
PerfDataSaveFileccstrruntimeNULLproduct
Save PerfData memory to the specified absolute pathname. 
The string %p in the file name (if present) 
will be replaced by pid
share/runtime/globals.hpp
PerfDataSaveToFileboolruntimefalseproduct
Save PerfData memory to hsperfdata_ file on exit
share/runtime/globals.hpp
PerfDisableSharedMemboolruntimefalseproduct
Store performance data in standard memory
share/runtime/globals.hpp
PerfMaxStringConstLengthintxruntime1024
range(32, 32*K)
product
Maximum PerfStringConstant string length before truncation
share/runtime/globals.hpp
PinAllInstructionsboolc1falsedevelop
All instructions are pinned
share/c1/c1_globals.hpp
PoisonOSREntryboolc2truedevelop
Detect abnormal calls to OSR code
share/opto/c2_globals.hpp
PostLoopMultiversioningboolc2falseexperimental
Multi versioned post loops to eliminate range checks
share/opto/c2_globals.hpp
PowerArchitecturePPC64uintxppc0product
Specify the PowerPC family version in use. If not provided, 
HotSpot will determine it automatically. Host family version 
is the maximum value allowed (instructions are not emulated).
cpu/ppc/globals_ppc.hpp
PreTouchParallelChunkSizesize_tgc1 * G
range(1, SIZE_MAX / 2)
product
Per-thread chunk size for parallel memory pre-touch.
share/gc/shared/gc_globals.hpp
PreallocatedOutOfMemoryErrorCountuintxruntime4develop
Number of OutOfMemoryErrors preallocated with backtrace
share/runtime/globals.hpp
PreferContainerQuotaForCPUCountDeprecated in JDK19
Obsoleted in JDK20
Expired in JDK21
boollinuxtrueproduct
Calculate the container CPU availability based on the value
 of quotas (if set), when true. Otherwise, use the CPU
 shares value, provided it is less than quota.
os/linux/globals_linux.hpp
PreferInterpreterNativeStubsboolaarch64falsedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
PreferInterpreterNativeStubsboolarmfalsedefine_pd_global
cpu/arm/c2_globals_arm.hpp
PreferInterpreterNativeStubsboolruntimeproduct_pd
Use always interpreter stubs for native methods invoked via 
interpreter
share/runtime/globals.hpp
PreferInterpreterNativeStubsboolppcfalsedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
PreferInterpreterNativeStubsbools390falsedefine_pd_global
cpu/s390/c2_globals_s390.hpp
PreferInterpreterNativeStubsboolsparcfalsedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
PreferInterpreterNativeStubsboolx86falsedefine_pd_global
cpu/x86/c1_globals_x86.hpp
PreferLAoverADDbools390falseproduct
Use LA/LAY instructions over ADD instructions (z/Architecture).
cpu/s390/globals_s390.hpp
PrefetchCopyIntervalInBytesintxgc-1
range(-1, max_jint)
product
How far ahead to prefetch destination area (<= 0 means off)
share/gc/shared/gc_globals.hpp
PrefetchFieldsAheadObsoleted in JDK19
Expired in JDK20
intxgc-1
range(-1, max_jint)
product
How many fields ahead to prefetch in oop scan (<= 0 means off)
share/gc/shared/gc_globals.hpp
PrefetchScanIntervalInBytesintxgc-1
range(-1, max_jint)
product
How far ahead to prefetch scan area (<= 0 means off)
share/gc/shared/gc_globals.hpp
PreserveAllAnnotationsDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolruntimefalseproduct
Preserve RuntimeInvisibleAnnotations as well 
as RuntimeVisibleAnnotations
share/runtime/globals.hpp
PreserveFramePointerboolaarch64falsedefine_pd_global
cpu/aarch64/globals_aarch64.hpp
PreserveFramePointerboolarmfalsedefine_pd_global
cpu/arm/globals_arm.hpp
PreserveFramePointerboolruntimeproduct_pd
Use the FP register for holding the frame pointer 
and not as a general purpose register.
share/runtime/globals.hpp
PreserveFramePointerboolppcfalsedefine_pd_global
cpu/ppc/globals_ppc.hpp
PreserveFramePointerbools390falsedefine_pd_global
cpu/s390/globals_s390.hpp
PreserveFramePointerboolsparcfalsedefine_pd_global
cpu/sparc/globals_sparc.hpp
PreserveFramePointerboolx86falsedefine_pd_global
cpu/x86/globals_x86.hpp
PreserveFramePointerboolzerofalsedefine_pd_global
cpu/zero/globals_zero.hpp
PretenureSizeThresholdsize_tgc0
range(0, max_uintx)
product
Maximum size in bytes of objects allocated in DefNew 
generation; zero means no maximum
share/gc/shared/gc_globals.hpp
PrintAOTStatisticsboolruntimefalsenotproduct
Print AOT statistics
share/runtime/globals.hpp
PrintAOTboolruntimefalseexperimental
Print used AOT klasses and methods
share/runtime/globals.hpp
PrintAdapterHandlersboolruntimefalsediagnostic
Print code generated for i2c/c2i adapters
share/runtime/globals.hpp
PrintAssemblyOptionsccstrruntimeNULLdiagnostic
Print options string passed to disassembler.so
share/runtime/globals.hpp
PrintAssemblyboolruntimefalsediagnostic
Print assembly code (using external disassembler.so)
share/runtime/globals.hpp
PrintBailoutsboolc1falsedevelop
Print bailout and its reason
share/c1/c1_globals.hpp
PrintBiasedLockingStatisticsDeprecated in JDK15
Obsoleted in JDK18
Expired in JDK19
boolruntimefalsediagnostic
Print statistics of biased locking in JVM
share/runtime/globals.hpp
PrintBlockEliminationboolc1falsedevelop
Print basic block elimination
share/c1/c1_globals.hpp
PrintBootstrapbooljvmcitrueexperimental
Print JVMCI bootstrap progress and summary
share/jvmci/jvmci_globals.hpp
PrintBytecodeHistogramboolruntimefalsedevelop
Print histogram of the executed bytecodes
share/runtime/globals.hpp
PrintBytecodePairHistogramboolruntimefalsedevelop
Print histogram of the executed bytecode pairs
share/runtime/globals.hpp
PrintC1Statisticsboolc1falsenotproduct
Print Compiler1 statistics
share/c1/c1_globals.hpp
PrintCEEboolc1falsedevelop
Print Conditional Expression Elimination
share/c1/c1_globals.hpp
PrintCFG0boolc1falsenotproduct
Print control flow graph after construction
share/c1/c1_globals.hpp
PrintCFG1boolc1falsenotproduct
Print control flow graph after optimizations
share/c1/c1_globals.hpp
PrintCFG2boolc1falsenotproduct
Print control flow graph before code generation
share/c1/c1_globals.hpp
PrintCFGBlockFreqboolc2falsedevelop
Print CFG block freqencies
share/opto/c2_globals.hpp
PrintCFGToFileboolc1falsedevelop
print control flow graph to a separate file during compilation
share/c1/c1_globals.hpp
PrintCFGboolc1falsenotproduct
Print control flow graph after each change
share/c1/c1_globals.hpp
PrintCanonicalizationboolc1falsedevelop
Print graph node canonicalization
share/c1/c1_globals.hpp
PrintClassHistogramboolruntimefalsemanageable
Print a histogram of class instances
share/runtime/globals.hpp
PrintCodeCache2boolruntimefalsedevelop
Print detailed usage information on the code cache when exiting
share/runtime/globals.hpp
PrintCodeCacheExtensionboolruntimefalsedevelop
Print extension of code cache
share/runtime/globals.hpp
PrintCodeCacheOnCompilationboolruntimefalseproduct
Print the code cache memory usage each time a method is 
compiled
share/runtime/globals.hpp
PrintCodeCacheboolruntimefalseproduct
Print the code cache memory usage when exiting
share/runtime/globals.hpp
PrintCommandLineFlagsboolruntimefalseproduct
Print flags specified on command line or set by ergonomics
share/runtime/globals.hpp
PrintCompilation2boolruntimefalsediagnostic
Print additional statistics per compilation
share/runtime/globals.hpp
PrintCompilationboolruntimefalseproduct
Print compilations
share/runtime/globals.hpp
PrintConcurrentLocksboolruntimefalsemanageable
Print java.util.concurrent locks in thread dump
share/runtime/globals.hpp
PrintDebugInfoboolruntimefalsedevelop
Print debug information for all nmethods when generated
share/runtime/globals.hpp
PrintDeoptimizationDetailsboolruntimefalsedevelop
Print more information about deoptimization
share/runtime/globals.hpp
PrintDependenciesboolruntimefalsedevelop
Print dependency information for all nmethods when generated
share/runtime/globals.hpp
PrintDominatorsboolc2falsedevelop
Print out dominator trees for GVN
share/opto/c2_globals.hpp
PrintEliminateAllocationsboolc2falsenotproduct
Print out when allocations are eliminated
share/opto/c2_globals.hpp
PrintEliminateLocksboolc2falsenotproduct
Print out when locks are eliminated
share/opto/c2_globals.hpp
PrintEscapeAnalysisboolc2falsenotproduct
Print the results of escape analysis
share/opto/c2_globals.hpp
PrintExceptionHandlersboolruntimefalsedevelop
Print exception handler tables for all nmethods when generated
share/runtime/globals.hpp
PrintExtendedThreadInfoboolruntimefalseproduct
Print more information in thread dump
share/runtime/globals.hpp
PrintFieldLayoutboolruntimefalsenotproduct
Print field layout for each class
share/runtime/globals.hpp
PrintFlagsFinalboolruntimefalseproduct
Print all VM flags after argument and ergonomic processing
share/runtime/globals.hpp
PrintFlagsInitialboolruntimefalseproduct
Print all VM flags before argument processing and exit VM
share/runtime/globals.hpp
PrintFlagsRangesboolruntimefalseproduct
Print VM flags and their ranges and exit VM
share/runtime/globals.hpp
PrintFlagsWithCommentsboolruntimefalsenotproduct
Print all VM flags with default values and descriptions and 
exit
share/runtime/globals.hpp
PrintFrameConverterAssemblyboolc2falsenotproduct
Print New compiler assembly output for frame converters
share/opto/c2_globals.hpp
PrintGCDetailsboolgcfalseproduct
Print more details at garbage collection. 
Deprecated, use -Xlog:gc* instead.
share/gc/shared/gc_globals.hpp
PrintGCboolgcfalseproduct
Print message at garbage collection. 
Deprecated, use -Xlog:gc instead.
share/gc/shared/gc_globals.hpp
PrintHeapAtSIGBREAKboolruntimetrueproduct
Print heap layout in response to SIGBREAK
share/runtime/globals.hpp
PrintIR0boolc1falsenotproduct
Print full intermediate representation after construction
share/c1/c1_globals.hpp
PrintIR1boolc1falsenotproduct
Print full intermediate representation after optimizations
share/c1/c1_globals.hpp
PrintIR2boolc1falsenotproduct
Print full intermediate representation before code generation
share/c1/c1_globals.hpp
PrintIRDuringConstructionboolc1falsenotproduct
Print IR as it's being constructed (helpful for debugging frontend)
share/c1/c1_globals.hpp
PrintIRWithLIRboolc1falsenotproduct
Print IR instructions with generated LIR
share/c1/c1_globals.hpp
PrintIRboolc1falsenotproduct
Print full intermediate representation after each change
share/c1/c1_globals.hpp
PrintIdealGraphAddressccstrc2127.0.0.1notproduct
IP address to connect to visualizer
share/opto/c2_globals.hpp
PrintIdealGraphFileccstrc2NULLnotproduct
File to dump ideal graph to. If set overrides the 
use of the network
share/opto/c2_globals.hpp
PrintIdealGraphLevelintxc20
range(-1, 4)
notproduct
Level of detail of the ideal graph printout. 
System-wide value, -1=printing is disabled, 

0=print nothing except IGVPrintLevel directives, 

4=all details printed. 
Level of detail of printouts can be set on a per-method level 
as well by using CompileCommand=option.
share/opto/c2_globals.hpp
PrintIdealGraphPortintxc24444
range(0, SHRT_MAX)
notproduct
Ideal graph printer to network port
share/opto/c2_globals.hpp
PrintIdealGraphboolc2falsenotproduct
Print ideal graph to XML file / network interface. 
By default attempts to connect to the visualizer on a socket.
share/opto/c2_globals.hpp
PrintIdealNodeCountboolc2falsenotproduct
Print liveness counts of ideal nodes
share/opto/c2_globals.hpp
PrintIdealboolc2falsenotproduct
Print ideal graph before code generation
share/opto/c2_globals.hpp
PrintInitialBlockListboolc1falsenotproduct
Print block list of BlockListBuilder
share/c1/c1_globals.hpp
PrintInliningboolruntimefalsediagnostic
Print inlining optimizations
share/runtime/globals.hpp
PrintInterpreterboolruntimefalsediagnostic
Print the generated interpreter code
share/runtime/globals.hpp
PrintIntrinsicsboolc2falsediagnostic
prints attempted and successful inlining of intrinsics
share/opto/c2_globals.hpp
PrintJNIResolvingObsoleted in JDK16
Expired in JDK17
boolruntimefalseproduct
Used to implement -v:jni
share/runtime/globals.hpp
PrintLIRWithAssemblyboolc1falsenotproduct
Show LIR instruction with generated assembly
share/c1/c1_globals.hpp
PrintLIRboolc1falsedevelop
print low-level IR
share/c1/c1_globals.hpp
PrintLockStatisticsboolc2falsenotproduct
Print precise statistics on the dynamic lock usage
share/opto/c2_globals.hpp
PrintMallocStatisticsboolruntimefalsedevelop
Print malloc/free statistics
share/runtime/globals.hpp
PrintMetaspaceStatisticsAtExitboolruntimefalsediagnostic
Print metaspace statistics upon VM exit.
share/runtime/globals.hpp
PrintMethodDataboolruntimefalsediagnostic
Print the results of +ProfileInterpreter at end of run
share/runtime/globals.hpp
PrintMethodFlushingStatisticsboolruntimefalsediagnostic
print statistics about method flushing
share/runtime/globals.hpp
PrintMethodFlushingboolruntimefalsedevelop
Print the nmethods being flushed
share/runtime/globals.hpp
PrintMethodHandleStubsboolruntimefalsediagnostic
Print generated stub code for method handles
share/runtime/globals.hpp
PrintMiscellaneousboolruntimefalsedevelop
Print uncategorized debugging information (requires +Verbose)
share/runtime/globals.hpp
PrintNMTStatisticsboolruntimefalsediagnostic
Print native memory tracking summary data if it is on
share/runtime/globals.hpp
PrintNMethodStatisticsboolruntimefalsenotproduct
Print a summary statistic for the generated nmethods
share/runtime/globals.hpp
PrintNMethodsboolruntimefalsediagnostic
Print assembly code for nmethods when generated
share/runtime/globals.hpp
PrintNativeNMethodsboolruntimefalsediagnostic
Print assembly code for native nmethods when generated
share/runtime/globals.hpp
PrintNotLoadedboolc1falsedevelop
Prints where classes are not loaded during code generation
share/c1/c1_globals.hpp
PrintNullCheckEliminationboolc1falsedevelop
Print null check elimination
share/c1/c1_globals.hpp
PrintOptimizePtrCompareboolc2falsenotproduct
Print information about optimized pointers compare
share/opto/c2_globals.hpp
PrintOptimizeStringConcatboolc2falsenotproduct
Print information about transformations performed on Strings
share/opto/c2_globals.hpp
PrintOptoAssemblyboolc2falsediagnostic
Print New compiler assembly output
share/opto/c2_globals.hpp
PrintOptoInliningboolc2falsenotproduct
Print compiler2 inlining decisions
share/opto/c2_globals.hpp
PrintOptoPeepholeboolc2falsenotproduct
Print New compiler peephole replacements
share/opto/c2_globals.hpp
PrintOptoStatisticsboolc2falsenotproduct
Print New compiler statistics
share/opto/c2_globals.hpp
PrintOptoboolc2falsenotproduct
Print compiler2 attempts
share/opto/c2_globals.hpp
PrintParseStatisticsboolc2falsenotproduct
Print nodes, transforms and new values made per bytecode parsed
share/opto/c2_globals.hpp
PrintPhiFunctionsboolc1falsenotproduct
Print phi functions when they are created and simplified
share/c1/c1_globals.hpp
PrintPreciseBiasedLockingStatisticsDeprecated in JDK15
Obsoleted in JDK18
Expired in JDK19
boolc2falsediagnostic
Print per-lock-site statistics of biased locking in JVM
share/opto/c2_globals.hpp
PrintPreciseRTMLockingStatisticsboolc2falsediagnostic
Print per-lock-site statistics of rtm locking in JVM
share/opto/c2_globals.hpp
PrintRelocationsboolruntimefalsedevelop
Print relocation information for all nmethods when generated
share/runtime/globals.hpp
PrintRewritesboolruntimefalsenotproduct
Print methods that are being rewritten
share/runtime/globals.hpp
PrintSafepointStatisticsCountDeprecated in JDK11
Obsoleted in JDK12
Expired in JDK13
intxruntime300
range(1, max_intx)
product
(Deprecated) Total number of safepoint statistics collected 
before printing them out
share/runtime/globals.hpp
PrintSafepointStatisticsTimeoutDeprecated in JDK11
Obsoleted in JDK12
Expired in JDK13
intxruntime-1product
(Deprecated) Print safepoint statistics only when safepoint takes 
more than PrintSafepointSatisticsTimeout in millis
share/runtime/globals.hpp
PrintSafepointStatisticsDeprecated in JDK11
Obsoleted in JDK12
Expired in JDK13
boolruntimefalseproduct
(Deprecated) Print statistics about safepoint synchronization
share/runtime/globals.hpp
PrintSharedArchiveAndExitboolruntimefalseproduct
Print shared archive file contents
share/runtime/globals.hpp
PrintSharedDictionaryObsoleted in JDK20
Expired in JDK21
boolruntimefalseproduct
If PrintSharedArchiveAndExit is true, also print the shared 
dictionary
share/runtime/globals.hpp
PrintSignatureHandlersboolruntimefalsediagnostic
Print code generated for native method signature handlers
share/runtime/globals.hpp
PrintSimpleStubsboolc1falsenotproduct
Print SimpleStubs
share/c1/c1_globals.hpp
PrintStringTableStatisticsboolruntimefalseproduct
print statistics about the StringTable and SymbolTable
share/runtime/globals.hpp
PrintStubCodeboolruntimefalsediagnostic
Print generated stub code
share/runtime/globals.hpp
PrintSymbolTableSizeHistogramboolruntimefalsenotproduct
print histogram of the symbol table
share/runtime/globals.hpp
PrintSystemDictionaryAtExitboolruntimefalsenotproduct
Print the system dictionary at exit
share/runtime/globals.hpp
PrintTieredEventsboolruntimefalseproduct
Print tiered events notifications
share/runtime/globals.hpp
PrintTouchedMethodsAtExitboolruntimefalsediagnostic
Print all methods that have been ever touched in runtime
share/runtime/globals.hpp
PrintUnsafeOptimizationboolc1falsedevelop
Print optimization of raw unsafe ops
share/c1/c1_globals.hpp
PrintVMMessagesboolruntimetruedevelop
Print VM messages on console
share/runtime/globals.hpp
PrintVMOptionsboolruntimefalseproduct
Print flags that appeared on the command line
share/runtime/globals.hpp
PrintVMQWaitTimeDeprecated in JDK15
Obsoleted in JDK16
Expired in JDK17
boolruntimefalseproduct
Print out the waiting time in VM operation queue
share/runtime/globals.hpp
PrintValueNumberingboolc1falsedevelop
Print Value Numbering
share/c1/c1_globals.hpp
PrintVtableStatsboolruntimefalsenotproduct
print vtables stats at end of run
share/runtime/globals.hpp
PrintWarningsboolruntimetrueproduct
Print JVM warnings to output stream
share/runtime/globals.hpp
ProcessDistributionStrideObsoleted in JDK23
Expired in JDK24
uintxruntime4
range(0, max_juint)
product
Stride through processors when distributing processes
share/runtime/globals.hpp
ProfileDynamicTypesboolc2truediagnostic
do extra type profiling and use it more aggressively
share/opto/c2_globals.hpp
ProfileInterpreterboolaarch64falsedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
ProfileInterpreterboolarmtruedefine_pd_global
cpu/arm/c2_globals_arm.hpp
ProfileInterpreterboolruntimeproduct_pd
Profile at the bytecode level during interpretation
share/runtime/globals.hpp
ProfileInterpreterboolppcfalsedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
ProfileInterpreterbools390truedefine_pd_global
cpu/s390/c2_globals_s390.hpp
ProfileInterpreterboolsparcfalsedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
ProfileInterpreterboolx86falsedefine_pd_global
cpu/x86/c1_globals_x86.hpp
ProfileIntervalsTicksObsoleted in JDK13
Expired in JDK14
intxruntime100
range(0, max_intx)
product
Number of ticks between printing of interval profile 
(+ProfileIntervals)
share/runtime/globals.hpp
ProfileIntervalsObsoleted in JDK13
Expired in JDK14
boolruntimefalseproduct
Print profiles for each interval (see ProfileIntervalsTicks)
share/runtime/globals.hpp
ProfileMaturityPercentageintxruntime20
range(0, 100)
product
number of method invocations/branches (expressed as % of 
CompileThreshold) before using the method's profile
share/runtime/globals.hpp
ProfileTrapsboolaarch64falsedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
ProfileTrapsboolarmtruedefine_pd_global
cpu/arm/c2_globals_arm.hpp
ProfileTrapsboolruntimedevelop_pd
Profile deoptimization traps at the bytecode level
share/runtime/globals.hpp
ProfileTrapsboolppcfalsedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
ProfileTrapsbools390truedefine_pd_global
cpu/s390/c2_globals_s390.hpp
ProfileTrapsboolsparcfalsedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
ProfileTrapsboolx86falsedefine_pd_global
cpu/x86/c1_globals_x86.hpp
ProfileVMObsoleted in JDK13
Expired in JDK14
boolruntimefalseproduct
Profile ticks that fall within VM (either in the VM Thread 
or VM code called through stubs)
share/runtime/globals.hpp
ProfiledCodeHeapSizeintxaarch6414*Mdefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
ProfiledCodeHeapSizesize_tarm14*Mdefine_pd_global
cpu/arm/c1_globals_arm.hpp
ProfiledCodeHeapSizeuintxruntimeproduct_pd
Size of code heap with profiled methods (in bytes)
share/runtime/globals.hpp
ProfiledCodeHeapSizeuintxppc14*Mdefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
ProfiledCodeHeapSizeuintxs39022*Mdefine_pd_global
cpu/s390/c2_globals_s390.hpp
ProfiledCodeHeapSizeuintxsparc14*Mdefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
ProfiledCodeHeapSizeuintxx8614*Mdefine_pd_global
cpu/x86/c1_globals_x86.hpp
ProfilerCheckIntervalsObsoleted in JDK13
Expired in JDK14
boolruntimefalsenotproduct
Collect and print information on spacing of profiler ticks
share/runtime/globals.hpp
ProfilerNodeSizeintxruntime1024
range(0, 1024)
develop
Size in K to allocate for the Profile Nodes of each thread
share/runtime/globals.hpp
ProfilerNumberOfCompiledMethodsObsoleted in JDK13
Expired in JDK14
intxruntime25diagnostic
Number of compiled methods to show in profile
share/runtime/globals.hpp
ProfilerNumberOfInterpretedMethodsObsoleted in JDK13
Expired in JDK14
intxruntime25diagnostic
Number of interpreted methods to show in profile
share/runtime/globals.hpp
ProfilerNumberOfRuntimeStubNodesObsoleted in JDK13
Expired in JDK14
intxruntime25diagnostic
Number of runtime stub nodes to show in profile
share/runtime/globals.hpp
ProfilerNumberOfStubMethodsObsoleted in JDK13
Expired in JDK14
intxruntime25diagnostic
Number of stub methods to show in profile
share/runtime/globals.hpp
ProfilerPCTickThresholdintxruntime15develop
Number of ticks in a PC buckets to be a hotspot
share/runtime/globals.hpp
ProfilerPrintByteCodeStatisticsObsoleted in JDK13
Expired in JDK14
boolruntimefalseproduct
Print bytecode statistics when dumping profiler output
share/runtime/globals.hpp
ProfilerRecordPCObsoleted in JDK13
Expired in JDK14
boolruntimefalseproduct
Collect ticks for each 16 byte interval of compiled code
share/runtime/globals.hpp
PromotedPaddinguintxgc3
range(0, max_juint)
product
How much buffer to keep for promotion failure
share/gc/shared/gc_globals.hpp
PromotionFailureALotCountuintxgc1000develop
Number of promotion failures occurring at PLAB 
refill attempts (ParNew) or promotion attempts 
(other young collectors)
share/gc/shared/gc_globals.hpp
PromotionFailureALotIntervaluintxgc5develop
Total collections between promotion failures a lot
share/gc/shared/gc_globals.hpp
PromotionFailureALotboolgcfalsenotproduct
Use promotion failure handling on every youngest generation 
collection
share/gc/shared/gc_globals.hpp
ProtectionDomainVerificationboolruntimetruedevelop
Verify protection domain before resolution in system dictionary
share/runtime/globals.hpp
QueuedAllocationWarningCountuintxgc0
range(0, max_uintx)
product
Number of times an allocation that queues behind a GC 
will retry before printing a warning
share/gc/shared/gc_globals.hpp
RTMAbortRatiointppc50
range(0, 100) /* natural range */
experimental
Lock abort ratio at which to stop use RTM lock eliding
cpu/ppc/globals_ppc.hpp
RTMAbortRatiointx8650
range(0, 100) /* natural range */
experimental
Lock abort ratio at which to stop use RTM lock eliding
cpu/x86/globals_x86.hpp
RTMAbortThresholdintppc1000
range(0, max_jint)
experimental
Calculate abort ratio after this number of aborts
cpu/ppc/globals_ppc.hpp
RTMAbortThresholdintx861000
range(0, max_jint)
experimental
Calculate abort ratio after this number of aborts
cpu/x86/globals_x86.hpp
RTMLockingCalculationDelayintxppc0experimental
Number of milliseconds to wait before start calculating aborts 
for RTM locking
cpu/ppc/globals_ppc.hpp
RTMLockingCalculationDelayintxx860experimental
Number of milliseconds to wait before start calculating aborts 
for RTM locking
cpu/x86/globals_x86.hpp
RTMLockingThresholdintppc10000
range(0, max_jint)
experimental
Lock count at which to do RTM lock eliding without 
abort ratio calculation
cpu/ppc/globals_ppc.hpp
RTMLockingThresholdintx8610000
range(0, max_jint)
experimental
Lock count at which to do RTM lock eliding without 
abort ratio calculation
cpu/x86/globals_x86.hpp
RTMRetryCountDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
intppc5
range(0, max_jint)
product
Number of RTM retries on lock abort or busy
cpu/ppc/globals_ppc.hpp
RTMRetryCountDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
intx865
range(0, max_jint)
product
Number of RTM retries on lock abort or busy
cpu/x86/globals_x86.hpp
RTMSpinLoopCountintppc100
range(0, 32767) /* immediate operand limit on ppc */
experimental
Spin count for lock to become free before RTM retry
cpu/ppc/globals_ppc.hpp
RTMSpinLoopCountintx86100
range(0, max_jint)
experimental
Spin count for lock to become free before RTM retry
cpu/x86/globals_x86.hpp
RTMTotalCountIncrRateintppc64
range(1, 32767) /* immediate operand limit on ppc */
experimental
Increment total RTM attempted lock count once every n times
cpu/ppc/globals_ppc.hpp
RTMTotalCountIncrRateintx8664
range(1, max_jint)
experimental
Increment total RTM attempted lock count once every n times
cpu/x86/globals_x86.hpp
RangeCheckEliminationboolruntimetrueproduct
Eliminate range checks
share/runtime/globals.hpp
ReassociateInvariantsboolc2trueproduct
Enable reassociation of expressions with loop invariants.
share/opto/c2_globals.hpp
ReduceBulkZeroingboolc2trueproduct
When bulk-initializing, try to avoid needless zeroing
share/opto/c2_globals.hpp
ReduceFieldZeroingboolc2trueproduct
When initializing fields, try to avoid needless zeroing
share/opto/c2_globals.hpp
ReduceInitialCardMarksboolc2trueproduct
When initializing fields, try to avoid needless card marks
share/opto/c2_globals.hpp
ReduceNumberOfCompilerThreadsboolruntimetruediagnostic
Reduce the number of parallel compiler threads when they 
are not used
share/runtime/globals.hpp
ReduceSignalUsageboolruntimefalseproduct
Reduce the use of OS signals in Java and/or the VM
share/runtime/globals.hpp
RefDiscoveryPolicyObsoleted in JDK21
Expired in JDK24
intxgc0
range(ReferenceProcessor::DiscoveryPolicyMin,
product
Select type of reference discovery policy: 
reference-based(0) or referent-based(1)
share/gc/shared/gc_globals.hpp
ReferencesPerThreadsize_tgc1000experimental
Ergonomically start one thread for this amount of 
references for reference processing if 
ParallelRefProcEnabled is true. Specify 0 to disable and 
use all threads.
share/gc/shared/gc_globals.hpp
RegisterCostAreaRatiointxaarch6416000define_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
RegisterCostAreaRatiointxc2develop_pd
Spill selection in reg allocator: scale area by (X/64K) before 
adding cost
share/opto/c2_globals.hpp
RegisterCostAreaRatiointxppc16000define_pd_global
cpu/ppc/c2_globals_ppc.hpp
RegisterCostAreaRatiointxs39012000define_pd_global
cpu/s390/c2_globals_s390.hpp
RegisterCostAreaRatiointxsparc12000define_pd_global
cpu/sparc/c2_globals_sparc.hpp
RegisterCostAreaRatiointxx8616000define_pd_global
cpu/x86/c2_globals_x86.hpp
RegisterFinalizersAtInitDeprecated in JDK22
Obsoleted in JDK23
Expired in JDK24
boolruntimetrueproduct
Register finalizable objects at end of Object. or 
after allocation
share/runtime/globals.hpp
RegisterReferencesboolruntimetruedevelop
Tell whether the VM should register soft/weak/final/phantom 
references
share/runtime/globals.hpp
RelaxAccessControlCheckboolruntimefalseproduct
Relax the access control checks in the verifier
share/runtime/globals.hpp
RenumberLiveNodesboolc2truedevelop
Renumber live nodes
share/opto/c2_globals.hpp
ReoptimizeCallSequencesboolppctrueproduct
Reoptimize code-sequences of calls at runtime.
cpu/ppc/globals_ppc.hpp
ReoptimizeCallSequencesbools390trueproduct
Reoptimize code-sequences of calls at runtime.
cpu/s390/globals_s390.hpp
ReplayCompilesboolruntimefalsedevelop
Enable replay of compilations from ReplayDataFile
share/runtime/globals.hpp
ReplayDataFileccstrruntimeNULLproduct
File containing compilation replay information
[default: ./replay_pid%p.log] (%p replaced with pid)
share/runtime/globals.hpp
ReplayIgnoreInitErrorsboolruntimefalsedevelop
Ignore exceptions thrown during initialization for replay
share/runtime/globals.hpp
ReplaySuppressInitializersintxruntime2
range(0, 3)
develop
Control handling of class initialization during replay: 

0 - don't do anything special; 

1 - treat all class initializers as empty; 

2 - treat class initializers for application classes as empty; 

3 - allow all class initializers to run during bootstrap but 
 pretend they are empty after starting replay
share/runtime/globals.hpp
RequireSharedSpacesDeprecated in JDK18
Obsoleted in JDK19
boolruntimefalseproduct
Require shared spaces for metadata
share/runtime/globals.hpp
ReservedCodeCacheSizeintxaarch6432*Mdefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
ReservedCodeCacheSizesize_tarm32*Mdefine_pd_global
cpu/arm/c1_globals_arm.hpp
ReservedCodeCacheSizeuintxruntimeproduct_pd
Reserved code cache size (in bytes) - maximum code cache size
share/runtime/globals.hpp
ReservedCodeCacheSizeuintxppc32*Mdefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
ReservedCodeCacheSizeuintxs39048*Mdefine_pd_global
cpu/s390/c2_globals_s390.hpp
ReservedCodeCacheSizeuintxsparc32*Mdefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
ReservedCodeCacheSizeuintxx8632*Mdefine_pd_global
cpu/x86/c1_globals_x86.hpp
ResizeOldPLABObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Dynamically resize (old gen) promotion LAB's
share/gc/shared/gc_globals.hpp
ResizePLABboolgctrueproduct
Dynamically resize (survivor space) promotion LAB's
share/gc/shared/gc_globals.hpp
ResizeTLABboolaarch64truedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
ResizeTLABboolarmtruedefine_pd_global
cpu/arm/c1_globals_arm.hpp
ResizeTLABboolgcproduct_pd
Dynamically resize TLAB size for threads
share/gc/shared/gc_globals.hpp
ResizeTLABboolruntimefalsedefine_pd_global
share/runtime/globals.hpp
ResizeTLABboolppctruedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
ResizeTLABbools390truedefine_pd_global
cpu/s390/c2_globals_s390.hpp
ResizeTLABboolsparctruedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
ResizeTLABboolx86truedefine_pd_global
cpu/x86/c1_globals_x86.hpp
RestoreMXCSROnJNICallsboolruntimefalseproduct
Restore MXCSR when returning from JNI calls
share/runtime/globals.hpp
RestrictContendedboolruntimetrueproduct
Restrict @Contended to trusted classes
share/runtime/globals.hpp
RestrictReservedStackboolruntimetrueproduct
Restrict @ReservedStackAccess to trusted classes
share/runtime/globals.hpp
RewriteBytecodesboolaarch64truedefine_pd_global
cpu/aarch64/globals_aarch64.hpp
RewriteBytecodesboolarmtruedefine_pd_global
cpu/arm/globals_arm.hpp
RewriteBytecodesboolruntimeproduct_pd
Allow rewriting of bytecodes (bytecodes are not immutable)
share/runtime/globals.hpp
RewriteBytecodesboolppctruedefine_pd_global
cpu/ppc/globals_ppc.hpp
RewriteBytecodesbools390truedefine_pd_global
cpu/s390/globals_s390.hpp
RewriteBytecodesboolsparctruedefine_pd_global
cpu/sparc/globals_sparc.hpp
RewriteBytecodesboolx86truedefine_pd_global
cpu/x86/globals_x86.hpp
RewriteBytecodesboolzerotruedefine_pd_global
cpu/zero/globals_zero.hpp
RewriteFrequentPairsboolaarch64truedefine_pd_global
cpu/aarch64/globals_aarch64.hpp
RewriteFrequentPairsboolarmtruedefine_pd_global
cpu/arm/globals_arm.hpp
RewriteFrequentPairsboolruntimeproduct_pd
Rewrite frequently used bytecode pairs into a single bytecode
share/runtime/globals.hpp
RewriteFrequentPairsboolppctruedefine_pd_global
cpu/ppc/globals_ppc.hpp
RewriteFrequentPairsbools390truedefine_pd_global
cpu/s390/globals_s390.hpp
RewriteFrequentPairsboolsparctruedefine_pd_global
cpu/sparc/globals_sparc.hpp
RewriteFrequentPairsboolx86truedefine_pd_global
cpu/x86/globals_x86.hpp
RewriteFrequentPairsboolzerotruedefine_pd_global
cpu/zero/globals_zero.hpp
RoundFPResultsboolaarch64truedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
RoundFPResultsboolarmfalsedefine_pd_global
cpu/arm/c1_globals_arm.hpp
RoundFPResultsboolc1develop_pd
Indicates whether rounding is needed for floating point results
share/c1/c1_globals.hpp
RoundFPResultsboolppcfalsedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
RoundFPResultsbools390falsedefine_pd_global
cpu/s390/c1_globals_s390.hpp
RoundFPResultsboolsparcfalsedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
RoundFPResultsboolx86truedefine_pd_global
cpu/x86/c1_globals_x86.hpp
SafepointALotboolruntimefalsediagnostic
Generate a lot of safepoints. This works with 
GuaranteedSafepointInterval
share/runtime/globals.hpp
SafepointTimeoutDelayintxruntime10000product
Delay in milliseconds for option SafepointTimeout
share/runtime/globals.hpp
SafepointTimeoutboolruntimefalseproduct
Time out and warn or fail after SafepointTimeoutDelay 
milliseconds if failed to reach safepoint
share/runtime/globals.hpp
ScavengeALotIntervalintxgc1notproduct
Interval between which scavenge will occur with +ScavengeALot
share/gc/shared/gc_globals.hpp
ScavengeALotboolgcfalsenotproduct
Force scavenge at every Nth exit from the runtime system 
(N=ScavengeALotInterval)
share/gc/shared/gc_globals.hpp
ScavengeBeforeFullGCObsoleted in JDK23
Expired in JDK24
boolgctrueproduct
Scavenge youngest generation before each full GC.
share/gc/shared/gc_globals.hpp
ScavengeRootsInCodeintxruntime2
range(0, 2)
diagnostic
0: do not allow scavengable oops in the code cache; 

1: allow scavenging from the code cache; 

2: emit as many constants as the compiler can see
share/runtime/globals.hpp
SegmentedCodeCacheboolruntimefalseproduct
Use a segmented code cache
share/runtime/globals.hpp
SelectivePhiFunctionsboolc1truedevelop
create phi functions at loop headers only when necessary
share/c1/c1_globals.hpp
SelfDestructTimerintxruntime0
range(0, max_intx)
product
Will cause VM to terminate after a given time (in minutes) 
(0 means off)
share/runtime/globals.hpp
SerializeVMOutputboolruntimetruediagnostic
Use a mutex to serialize output to tty and LogFile
share/runtime/globals.hpp
SharedArchiveConfigFileccstrruntimeNULLproduct
Data to add to the CDS archive file
share/runtime/globals.hpp
SharedArchiveFileccstrruntimeNULLproduct
Override the default location of the CDS archive file
share/runtime/globals.hpp
SharedBaseAddresssize_truntimeLP64_ONLY(32*G)NOT_LP64(LINUX_ONLY(2*G) NOT_LINUX(0))
range(0, SIZE_MAX)
product
Address to allocate shared memory region for class data
share/runtime/globals.hpp
SharedClassListFileccstrruntimeNULLproduct
Override the default CDS class list
share/runtime/globals.hpp
SharedSymbolTableBucketSizeuintxruntime4
range(2, 246)
product
Average number of symbols per bucket in shared table
share/runtime/globals.hpp
ShenandoahAllocFailureALotboolgcfalsediagnostic
Testing: make lots of artificial allocation failures.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahAllocSpikeFactoruintxgc5
range(0,100)
experimental
How much of heap should some heuristics reserve for absorbing 
the allocation spikes. Larger value wastes more memory in 
non-emergency cases, but provides more safety in emergency 
cases. In percents of (soft) max heap size.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahAllocationThresholduintxgc0
range(0,100)
experimental
How many new allocations should happen since the last GC cycle 
before some heuristics trigger the collection. In percents of 
(soft) max heap size. Set to zero to effectively disable.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahAlwaysClearSoftRefsboolgcfalseexperimental
Unconditionally clear soft references, instead of using any 
other cleanup policy. This minimizes footprint at expense of
more soft reference churn in applications.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahCASBarrierboolgctruediagnostic
Turn on/off CAS barriers in Shenandoah
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahCloneBarrierboolgctruediagnostic
Turn on/off clone barriers in Shenandoah
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahCodeRootsStyleuintxgc2diagnostic
Use this style to scan the code cache roots:
 0 - sequential iterator;
 1 - parallel iterator;
 2 - parallel iterator with cset filters;
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahControlIntervalAdjustPerioduintxgc1000experimental
The time period for one step in control loop interval 
adjustment. Lower values make adjustments faster, at the 
expense of higher perf overhead. Time is in milliseconds.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahControlIntervalMaxuintxgc10experimental
The maximum sleep interval for control loop that drives 
the cycles. Lower values would increase GC responsiveness 
to changing heap conditions, at the expense of higher perf 
overhead. Time is in milliseconds.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahControlIntervalMinuintxgc1experimental
The minimum sleep interval for the control loop that drives 
the cycles. Lower values would increase GC responsiveness 
to changing heap conditions, at the expense of higher perf 
overhead. Time is in milliseconds.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahCriticalFreeThresholduintxgc1
range(0, 100)
experimental
How much of the heap needs to be free after recovery cycles, 
either Degenerated or Full GC to be claimed successful. If this 
much space is not available, next recovery step would be 
triggered.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahDegeneratedGCboolgctruediagnostic
Enable Degenerated GC as the graceful degradation step. 
Disabling this option leads to degradation to Full GC instead. 
When running in passive mode, this can be toggled to measure 
either Degenerated GC or Full GC costs.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahElasticTLABboolgctruediagnostic
Use Elastic TLABs with Shenandoah
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahEvacReserveOverflowboolgctrueexperimental
Allow evacuations to overflow the reserved space. Enabling it 
will make evacuations more resilient when evacuation 
reserve/waste is incorrect, at the risk that application 
runs out of memory too early.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahEvacReserveuintxgc5
range(1,100)
experimental
How much of heap to reserve for evacuations. Larger values make 
GC evacuate more live objects on every cycle, while leaving 
less headroom for application to allocate in. In percents of 
total heap size.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahEvacWastedoublegc1.2
range(1.0,100.0)
experimental
How much waste evacuations produce within the reserved space. 
Larger values make evacuations more resilient against 
evacuation conflicts, at expense of evacuating less on each 
GC cycle.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahFullGCThresholduintxgc3experimental
How many back-to-back Degenerated GCs should happen before 
going to a Full GC.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahGCHeuristicsccstrgcadaptiveproduct
GC heuristics to use. This fine-tunes the GC mode selected, 
by choosing when to start the GC, how much to process on each 
cycle, and what other features to automatically enable. 
Possible values are:
 adaptive - adapt to maintain the given amount of free heap 
at all times, even during the GC cycle;
 static - trigger GC when free heap falls below the threshold;
 aggressive - run GC continuously, try to evacuate everything;
 compact - run GC more frequently and with deeper targets to 
free up more memory.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahGCModeccstrgcsatbproduct
GC mode to use. Among other things, this defines which 
barriers are in in use. Possible values are:
 satb - snapshot-at-the-beginning concurrent GC (three pass mark-evac-update);
 iu - incremental-update concurrent GC (three pass mark-evac-update);
 passive - stop the world GC only (either degenerated or full)
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahGarbageThresholduintxgc25
range(0,100)
experimental
How much garbage a region has to contain before it would be 
taken for collection. This a guideline only, as GC heuristics 
may select the region for collection even if it has little 
garbage. This also affects how much internal fragmentation the 
collector accepts. In percents of heap region size.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahGuaranteedGCIntervaluintxgc5*60*1000experimental
Many heuristics would guarantee a concurrent GC cycle at 
least with this interval. This is useful when large idle 
intervals are present, where GC can run without stealing 
time from active application. Time is in milliseconds. 
Setting this to 0 disables the feature.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahHumongousMovesboolgctruediagnostic
Allow moving humongous regions. This makes GC more resistant 
to external fragmentation that may otherwise fail other 
humongous allocations, at the expense of higher GC copying 
costs. Currently affects stop-the-world (Full) cycle only.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahHumongousThresholdintxgc100
range(1, 100)
experimental
Humongous objects are allocated in separate regions. 
This setting defines how large the object should be to be 
deemed humongous. Value is in percents of heap region size. 
This also caps the maximum TLAB size.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahIUBarrierboolgcfalsediagnostic
Turn on/off I-U barriers barriers in Shenandoah
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahImmediateThresholduintxgc90
range(0,100)
experimental
The cycle may shortcut when enough garbage can be reclaimed 
from the immediate garbage (completely garbage regions). 
In percents of total garbage found. Setting this threshold 
to 100 effectively disables the shortcut.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahImplicitGCInvokesConcurrentboolgcfalseexperimental
Should internally-caused GC requests invoke concurrent cycles, 
should they do the stop-the-world (Degenerated / Full GC)? 
Many heuristics automatically enable this. This option is 
similar to global ExplicitGCInvokesConcurrent.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahInitFreeThresholduintxgc70
range(0,100)
experimental
How much heap should be free before some heuristics trigger the 
initial (learning) cycles. Affects cycle frequency on startup 
and after drastic state changes, e.g. after degenerated/full 
GC cycles. In percents of (soft) max heap size.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahLearningStepsuintxgc5
range(0,100)
experimental
The number of cycles some heuristics take to collect in order 
to learn application and GC performance.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahLoadRefBarrierboolgctruediagnostic
Turn on/off load-reference barriers in Shenandoah
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahLoopOptsAfterExpansionboolgctruediagnostic
Attempt more loop opts after barrier expansion.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahMarkLoopStrideuintxgc1000experimental
How many items to process during one marking iteration before 
checking for cancellation, yielding, etc. Larger values improve 
marking performance at expense of responsiveness.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahMarkScanPrefetchintxgc32
range(0, 256)
experimental
How many objects to prefetch ahead when traversing mark bitmaps.
Set to 0 to disable prefetching.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahMaxRegionSizesize_tgc32 * Mexperimental
With automatic region sizing, the regions would be at most 
this large.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahMaxSATBBufferFlushesuintxgc5experimental
How many times to maximum attempt to flush SATB buffers at the 
end of concurrent marking.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahMinFreeThresholduintxgc10
range(0,100)
experimental
How much heap should be free before most heuristics trigger the 
collection, even without other triggers. Provides the safety 
margin for many heuristics. In percents of (soft) max heap size.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahMinRegionSizesize_tgc256 * Kexperimental
With automatic region sizing, the regions would be at least 
this large.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahOOMDuringEvacALotboolgcfalsediagnostic
Testing: simulate OOM during evacuation.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahOptimizeStaticFinalsboolgctruediagnostic
Optimize barriers on static final fields. 
Turn it off for maximum compatibility with reflection or JNI 
code that manipulates final fields.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahPacingCycleSlackuintxgc10
range(0, 100)
experimental
How much of free space to take as non-taxable allocations 
the GC cycle. Larger value makes the pacing milder at the 
beginning of the GC cycle. Lower value makes the pacing less 
uniform during the cycle. In percent of free space.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahPacingIdleSlackuintxgc2
range(0, 100)
experimental
How much of heap counted as non-taxable allocations during idle 
phases. Larger value makes the pacing milder when collector is 
idle, requiring less rendezvous with control thread. Lower 
value makes the pacing control less responsive to out-of-cycle 
allocs. In percent of total heap size.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahPacingMaxDelayuintxgc10experimental
Max delay for pacing application allocations. Larger values 
provide more resilience against out of memory, at expense at 
hiding the GC latencies in the allocation path. Time is in 
milliseconds. Setting it to arbitrarily large value makes 
GC effectively stall the threads indefinitely instead of going 
to degenerated or Full GC.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahPacingSurchargedoublegc1.1
range(1.0, 100.0)
experimental
Additional pacing tax surcharge to help unclutter the heap. 
Larger values makes the pacing more aggressive. Lower values 
risk GC cycles finish with less memory than were available at 
the beginning of it.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahPacingboolgctrueexperimental
Pace application allocations to give GC chance to start 
and complete before allocation failure is reached.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahParallelRegionStrideuintxgc1024experimental
How many regions to process at once during parallel region 
iteration. Affects heaps with lots of regions.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahPrecleanboolgctruediagnostic
Do concurrent preclean phase before final mark: process 
definitely alive references to avoid dealing with them during 
pause.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahRefProcFrequencyuintxgc5experimental
Process process weak (soft, phantom, finalizers) references 
every Nth cycle. Normally affects concurrent GC cycles only, 
as degenerated and full GCs would try to process references 
regardless. Set to zero to disable reference processing 
completely.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahRegionSamplingRateintgc40experimental
Sampling rate for heap region sampling. In milliseconds between 
the samples. Higher values provide more fidelity, at expense 
of more sampling overhead.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahRegionSamplingboolgcfalseexperimental
Provide heap region sampling data via jvmstat.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahRegionSizesize_tgc0experimental
Static heap region size. Set zero to enable automatic sizing.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahSATBBarrierboolgctruediagnostic
Turn on/off SATB barriers in Shenandoah
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahSATBBufferSizesize_tgc1 * K
range(1, max_uintx)
experimental
Number of entries in an SATB log buffer.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahSelfFixingboolgctruediagnostic
Fix references with load reference barrier. Disabling this 
might degrade performance.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahSoftMaxHeapSizesize_tgc0manageable
Soft limit for maximum heap size (in bytes)
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahSuspendibleWorkersboolgcfalseexperimental
Suspend concurrent GC worker threads at safepoints
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahTargetNumRegionssize_tgc2048experimental
With automatic region sizing, this is the approximate number 
of regions that would be used, within min/max region size 
limits.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahUncommitDelayuintxgc5*60*1000experimental
Uncommit memory for regions that were not used for more than 
this time. First use after that would incur allocation stalls. 
Actively used regions would never be uncommitted, because they 
do not become unused longer than this delay. Time is in 
milliseconds. Setting this delay to 0 effectively uncommits 
regions almost immediately after they become unused.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahUncommitboolgctrueexperimental
Allow to uncommit memory under unused regions and metadata. 
This optimizes footprint at expense of allocation latency in 
regions that require committing back. Uncommits would be 
disabled by some heuristics, or with static heap size.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahUnloadClassesFrequencyuintxgc100experimental
Unload the classes every Nth cycle. Normally affects concurrent 
GC cycles, as degenerated and full GCs would try to unload 
classes regardless. Set to zero to disable class unloading.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahVerifyLevelintxgc4diagnostic
Verification level, higher levels check more, taking more time. 
Accepted values are:
 0 = basic heap checks; 
 1 = previous level, plus basic region checks; 
 2 = previous level, plus all roots; 
 3 = previous level, plus all reachable objects; 
 4 = previous level, plus all marked objects
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahVerifyOptoBarriersboolgcfalsedevelop
Verify no missing barriers in C2.
share/gc/shenandoah/shenandoah_globals.hpp
ShenandoahVerifyboolgcfalsediagnostic
Enable internal verification. This would catch many GC bugs, 
but it would also stall the collector during the verification, 
which prolongs the pauses and might hide other bugs.
share/gc/shenandoah/shenandoah_globals.hpp
ShowHiddenFramesboolruntimefalsediagnostic
show method handle implementation frames (usually hidden)
share/runtime/globals.hpp
ShowMessageBoxOnErrorboolruntimefalseproduct
Keep process alive on VM fatal error
share/runtime/globals.hpp
ShowRegistersOnAssertboolruntimefalsediagnostic
On internal errors, include registers in error report.
share/runtime/globals.hpp
ShrinkHeapInStepsboolruntimetrueproduct
When disabled, informs the GC to shrink the java heap directly
 to the target size at the next full GC rather than requiring
 smaller steps during multiple full GCs.
share/runtime/globals.hpp
SoftMatchFailureboolc2trueInProductdevelop
If the DFA fails to match a node, print a message and bail out
share/opto/c2_globals.hpp
SoftRefLRUPolicyMSPerMBintxruntime1000
range(0, max_intx)
product
Number of milliseconds per MB of free space in the heap
share/runtime/globals.hpp
SoftwarePrefetchHintDistanceintaarch64-1
range(-1, 4096)
product
Use prfm hint with specified distance in compiled code.
Value -1 means off.
cpu/aarch64/globals_aarch64.hpp
SparcV9RegsHiBitsZeroboolc2truedevelop
Assume Sparc V9 I&L registers on V8+ systems are zero-extended
share/opto/c2_globals.hpp
SpecTrapLimitExtraEntriesintxruntime3experimental
Extra method data trap entries for speculation
share/runtime/globals.hpp
SpecialArraysEqualsboolc2truediagnostic
special version of Arrays.equals(char[],char[])
share/opto/c2_globals.hpp
SpecialEncodeISOArrayboolc2truediagnostic
special version of ISO_8859_1$Encoder.encodeISOArray
share/opto/c2_globals.hpp
SpecialStringCompareToboolc2truediagnostic
special version of string compareTo
share/opto/c2_globals.hpp
SpecialStringEqualsboolc2truediagnostic
special version of string equals
share/opto/c2_globals.hpp
SpecialStringIndexOfboolc2truediagnostic
special version of string indexOf
share/opto/c2_globals.hpp
SplitIfBlocksboolc2trueproduct
Clone compares and control flow through merge points to fold 
some branches
share/opto/c2_globals.hpp
StackPrintLimitintxruntime100develop
number of stack frames to print in VM-level stack dump
share/runtime/globals.hpp
StackRedPagesintxaarch64DEFAULT_STACK_RED_PAGESdefine_pd_global
cpu/aarch64/globals_aarch64.hpp
StackRedPagesintxarmDEFAULT_STACK_RED_PAGESdefine_pd_global
cpu/arm/globals_arm.hpp
StackRedPagesintxruntimeproduct_pd
Number of red zone (unrecoverable overflows) pages of size 

4KB. If pages are bigger red zone is aligned up.
share/runtime/globals.hpp
StackRedPagesintxppcDEFAULT_STACK_RED_PAGESdefine_pd_global
cpu/ppc/globals_ppc.hpp
StackRedPagesintxs390DEFAULT_STACK_RED_PAGESdefine_pd_global
cpu/s390/globals_s390.hpp
StackRedPagesintxsparcDEFAULT_STACK_RED_PAGESdefine_pd_global
cpu/sparc/globals_sparc.hpp
StackRedPagesintxx86DEFAULT_STACK_RED_PAGESdefine_pd_global
cpu/x86/globals_x86.hpp
StackRedPagesintxzeroDEFAULT_STACK_RED_PAGESdefine_pd_global
cpu/zero/globals_zero.hpp
StackReservedPagesintxaarch64DEFAULT_STACK_RESERVED_PAGESdefine_pd_global
cpu/aarch64/globals_aarch64.hpp
StackReservedPagesintxarmDEFAULT_STACK_RESERVED_PAGESdefine_pd_global
cpu/arm/globals_arm.hpp
StackReservedPagesintxruntimeproduct_pd
Number of reserved zone (reserved to annotated methods) pages
 of size 4KB. If pages are bigger reserved zone is aligned up.
share/runtime/globals.hpp
StackReservedPagesintxppcDEFAULT_STACK_RESERVED_PAGESdefine_pd_global
cpu/ppc/globals_ppc.hpp
StackReservedPagesintxs390DEFAULT_STACK_RESERVED_PAGESdefine_pd_global
cpu/s390/globals_s390.hpp
StackReservedPagesintxsparcDEFAULT_STACK_RESERVED_PAGESdefine_pd_global
cpu/sparc/globals_sparc.hpp
StackReservedPagesintxx86DEFAULT_STACK_RESERVED_PAGESdefine_pd_global
cpu/x86/globals_x86.hpp
StackReservedPagesintxzeroDEFAULT_STACK_RESERVED_PAGESdefine_pd_global
cpu/zero/globals_zero.hpp
StackShadowPagesintxaarch64DEFAULT_STACK_SHADOW_PAGESdefine_pd_global
cpu/aarch64/globals_aarch64.hpp
StackShadowPagesintxarmDEFAULT_STACK_SHADOW_PAGESdefine_pd_global
cpu/arm/globals_arm.hpp
StackShadowPagesintxruntimeproduct_pd
Number of shadow zone (for overflow checking) pages of size 

4KB. If pages are bigger shadow zone is aligned up. 
This should exceed the depth of the VM and native call stack.
share/runtime/globals.hpp
StackShadowPagesintxppcDEFAULT_STACK_SHADOW_PAGESdefine_pd_global
cpu/ppc/globals_ppc.hpp
StackShadowPagesintxs390DEFAULT_STACK_SHADOW_PAGESdefine_pd_global
cpu/s390/globals_s390.hpp
StackShadowPagesintxsparcDEFAULT_STACK_SHADOW_PAGESdefine_pd_global
cpu/sparc/globals_sparc.hpp
StackShadowPagesintxx86DEFAULT_STACK_SHADOW_PAGESdefine_pd_global
cpu/x86/globals_x86.hpp
StackShadowPagesintxzeroDEFAULT_STACK_SHADOW_PAGESdefine_pd_global
cpu/zero/globals_zero.hpp
StackTraceInThrowableboolruntimetrueproduct
Collect backtrace in throwable when exception happens
share/runtime/globals.hpp
StackYellowPagesintxaarch64DEFAULT_STACK_YELLOW_PAGESdefine_pd_global
cpu/aarch64/globals_aarch64.hpp
StackYellowPagesintxarmDEFAULT_STACK_YELLOW_PAGESdefine_pd_global
cpu/arm/globals_arm.hpp
StackYellowPagesintxruntimeproduct_pd
Number of yellow zone (recoverable overflows) pages of size 

4KB. If pages are bigger yellow zone is aligned up.
share/runtime/globals.hpp
StackYellowPagesintxppcDEFAULT_STACK_YELLOW_PAGESdefine_pd_global
cpu/ppc/globals_ppc.hpp
StackYellowPagesintxs390DEFAULT_STACK_YELLOW_PAGESdefine_pd_global
cpu/s390/globals_s390.hpp
StackYellowPagesintxsparcDEFAULT_STACK_YELLOW_PAGESdefine_pd_global
cpu/sparc/globals_sparc.hpp
StackYellowPagesintxx86DEFAULT_STACK_YELLOW_PAGESdefine_pd_global
cpu/x86/globals_x86.hpp
StackYellowPagesintxzeroDEFAULT_STACK_YELLOW_PAGESdefine_pd_global
cpu/zero/globals_zero.hpp
StartAggressiveSweepingAtuintxruntime10
range(0, 100)
product
Start aggressive sweeping if X[%] of the code cache is free.
Segmented code cache: X[%] of the non-profiled heap.
Non-segmented code cache: X[%] of the total code cache
share/runtime/globals.hpp
StartAttachListenerboolruntimefalseproduct
Always start Attach Listener at VM startup
share/runtime/globals.hpp
StartFlightRecordingccstrruntimeNULLproduct
Start flight recording with options
share/runtime/globals.hpp
StopInterpreterAtintxruntime0develop
Stop interpreter execution at specified bytecode number
share/runtime/globals.hpp
StressArrayCopyMacroNodeboolc2falsedevelop
Perform ArrayCopy load/store replacement during IGVN only
share/opto/c2_globals.hpp
StressCodeAgingboolruntimefalsediagnostic
Start with counters compiled in
share/runtime/globals.hpp
StressCodeBuffersboolruntimefalsedevelop
Exercise code buffer expansion and other rare state changes
share/runtime/globals.hpp
StressCompiledExceptionHandlersboolruntimefalsedevelop
Exercise compiled exception handlers
share/runtime/globals.hpp
StressCriticalJNINativesboolruntimefalsenotproduct
Exercise register saving code in critical natives
share/runtime/globals.hpp
StressDerivedPointersboolruntimefalsenotproduct
Force scavenge when a derived pointer is detected on stack 
after rtm call
share/runtime/globals.hpp
StressGCMboolc2falsediagnostic
Randomize instruction scheduling in GCM
share/opto/c2_globals.hpp
StressLCMboolc2falsediagnostic
Randomize instruction scheduling in LCM
share/opto/c2_globals.hpp
StressLdcRewriteboolruntimefalseproduct
Force ldc -> ldc_w rewrite during RedefineClasses
share/runtime/globals.hpp
StressLinearScanboolc1falsedevelop
scramble block order used by LinearScan (stress test)
share/c1/c1_globals.hpp
StressLoopInvariantCodeMotionboolc1falsedevelop
stress loop invariant code motion
share/c1/c1_globals.hpp
StressMethodHandleLinkerInliningboolc2falsedevelop
Stress inlining through method handle linkers
share/opto/c2_globals.hpp
StressRangeCheckEliminationboolc1falsedevelop
stress Range Check Elimination
share/c1/c1_globals.hpp
StressRecompilationboolc2falsedevelop
Recompile each compiled method without subsuming loads 
or escape analysis.
share/opto/c2_globals.hpp
StressReflectiveCodeboolc2falsedevelop
Use inexact types at allocations, etc., to test reflection
share/opto/c2_globals.hpp
StressRewriterboolruntimefalsedevelop
Stress linktime bytecode rewriting
share/runtime/globals.hpp
StrictSafepointChecksboolruntimetrueInDebugnotproduct
Enable strict checks that safepoints cannot happen for threads 
that use NoSafepointVerifier
share/runtime/globals.hpp
StringDeduplicationAgeThresholduintxruntime3
range(1, markOopDesc::max_age)
product
A string must reach this age (or be promoted to an old region) 
to be considered for deduplication
share/runtime/globals.hpp
StringDeduplicationRehashALotboolruntimefalsediagnostic
Force table rehash every time the table is scanned
share/runtime/globals.hpp
StringDeduplicationResizeALotboolruntimefalsediagnostic
Force table resize every time the table is scanned
share/runtime/globals.hpp
StringTableSizeuintxruntimedefaultStringTableSize
range(minimumStringTableSize, 16777216ul)
product
Number of buckets in the interned String table 
(will be rounded to nearest higher power of 2)
share/runtime/globals.hpp
SubsumeLoadsboolc2truedevelop
Attempt to compile while subsuming loads into machine 
instructions.
share/opto/c2_globals.hpp
SuperWordLoopUnrollAnalysisboolaarch64truedefine_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
SuperWordLoopUnrollAnalysisboolc2product_pd
Map number of unrolls for main loop via 
Superword Level Parallelism analysis
share/opto/c2_globals.hpp
SuperWordLoopUnrollAnalysisboolppcfalsedefine_pd_global
cpu/ppc/c2_globals_ppc.hpp
SuperWordLoopUnrollAnalysisbools390falsedefine_pd_global
cpu/s390/c2_globals_s390.hpp
SuperWordLoopUnrollAnalysisboolsparcfalsedefine_pd_global
cpu/sparc/c2_globals_sparc.hpp
SuperWordLoopUnrollAnalysisboolx86truedefine_pd_global
cpu/x86/c2_globals_x86.hpp
SuperWordRTDepCheckboolc2falsedevelop
Enable runtime dependency checks.
share/opto/c2_globals.hpp
SuperWordReductionsboolc2trueproduct
Enable reductions support in superword.
share/opto/c2_globals.hpp
SuperwordUseVSXboolppcfalseproduct
Use Power8 VSX instructions for superword optimization.
cpu/ppc/globals_ppc.hpp
SuppressErrorAtccstrlistruntime
notproduct
List of assertions (file:line) to muzzle
share/runtime/globals.hpp
SuppressFatalErrorMessageboolruntimefalseproduct
Report NO fatal error message (avoid deadlock)
share/runtime/globals.hpp
SurvivorAlignmentInBytesintxruntime0experimental
Default survivor space alignment in bytes
share/runtime/globals.hpp
SurvivorPaddinguintxgc3
range(0, max_juint)
product
How much buffer to keep for survivor overflow
share/gc/shared/gc_globals.hpp
SurvivorRatiouintxgc8
range(1, max_uintx-2)
product
Ratio of eden/survivor space size
share/gc/shared/gc_globals.hpp
SuspendRetryCountObsoleted in JDK17
Expired in JDK18
intxruntime50
range(0, max_intx)
product
Maximum retry count for an external suspend request
share/runtime/globals.hpp
SuspendRetryDelayObsoleted in JDK17
Expired in JDK18
intxruntime5
range(0, max_intx)
product
Milliseconds to delay per retry (* current_retry_count)
share/runtime/globals.hpp
SweeperLogEntriesintxruntime1024notproduct
Number of records in the ring buffer of sweeper activity
share/runtime/globals.hpp
SymbolTableSizeuintxruntimedefaultSymbolTableSize
range(minimumSymbolTableSize, 111*defaultSymbolTableSize)
experimental
Number of buckets in the JVM internal Symbol table
share/runtime/globals.hpp
SyncFlagsObsoleted in JDK12
Expired in JDK13
intxruntime0experimental
(Unsafe, Unstable) 
Experimental Sync flags
share/runtime/globals.hpp
SyncKnobsObsoleted in JDK12
Expired in JDK13
ccstrruntimeNULLexperimental
(Unstable) Various monitor synchronization tunables
share/runtime/globals.hpp
SyncVerboseObsoleted in JDK12
Expired in JDK13
intxruntime0experimental
(Unstable)
share/runtime/globals.hpp
TLABAllocationWeightuintxgc35
range(0, 100)
product
Allocation averaging weight
share/gc/shared/gc_globals.hpp
TLABRefillWasteFractionuintxgc64
range(1, max_juint)
product
Maximum TLAB waste at a refill (internal fragmentation)
share/gc/shared/gc_globals.hpp
TLABSizesize_tgc0product
Starting TLAB size (in bytes); zero means set ergonomically
share/gc/shared/gc_globals.hpp
TLABStatsDeprecated in JDK12
Obsoleted in JDK23
Expired in JDK24
boolgctrueproduct
Provide more detailed and expensive TLAB statistics.
share/gc/shared/gc_globals.hpp
TLABWasteIncrementuintxgc4
range(0, max_jint)
product
Increment allowed waste at slow allocation
share/gc/shared/gc_globals.hpp
TLABWasteTargetPercentuintxgc1
range(1, 100)
product
Percentage of Eden that can be wasted (half-full TLABs at GC)
share/gc/shared/gc_globals.hpp
TargetPLABWastePctuintxgc10
range(1, 100)
product
Target wasted space in last buffer as percent of overall 
allocation
share/gc/shared/gc_globals.hpp
TargetSurvivorRatiouintxgc50
range(0, 100)
product
Desired percentage of survivor space used after scavenge
share/gc/shared/gc_globals.hpp
TenuredGenerationSizeIncrementuintxgc20
range(0, 100)
product
Adaptive size percentage change in tenured generation
share/gc/shared/gc_globals.hpp
TenuredGenerationSizeSupplementDecayuintxgc2
range(1, max_uintx)
product
Decay factor to TenuredGenerationSizeIncrement
share/gc/shared/gc_globals.hpp
TenuredGenerationSizeSupplementuintxgc80
range(0, 100)
product
Supplement to TenuredGenerationSizeIncrement used at startup
share/gc/shared/gc_globals.hpp
TestCrashInErrorHandleruintxruntime0notproduct
If > 0, provokes an error inside VM error handler (a secondary 
crash). see test_error_handler() in vmError.cpp
share/runtime/globals.hpp
TestSafeFetchInErrorHandlerboolruntimefalsenotproduct
If true, tests SafeFetch inside error handler.
share/runtime/globals.hpp
TestUnresponsiveErrorHandlerboolruntimefalsenotproduct
If true, simulates an unresponsive error handler.
share/runtime/globals.hpp
ThreadLocalHandshakesDeprecated in JDK13
Obsoleted in JDK14
Expired in JDK15
boolaarch64truedefine_pd_global
cpu/aarch64/globals_aarch64.hpp
ThreadLocalHandshakesDeprecated in JDK13
Obsoleted in JDK14
Expired in JDK15
boolarmfalsedefine_pd_global
cpu/arm/globals_arm.hpp
ThreadLocalHandshakesDeprecated in JDK13
Obsoleted in JDK14
Expired in JDK15
boolruntimeproduct_pd
Use thread-local polls instead of global poll for safepoints.
share/runtime/globals.hpp
ThreadLocalHandshakesDeprecated in JDK13
Obsoleted in JDK14
Expired in JDK15
boolppctruedefine_pd_global
cpu/ppc/globals_ppc.hpp
ThreadLocalHandshakesDeprecated in JDK13
Obsoleted in JDK14
Expired in JDK15
bools390truedefine_pd_global
cpu/s390/globals_s390.hpp
ThreadLocalHandshakesDeprecated in JDK13
Obsoleted in JDK14
Expired in JDK15
boolsparctruedefine_pd_global
cpu/sparc/globals_sparc.hpp
ThreadLocalHandshakesDeprecated in JDK13
Obsoleted in JDK14
Expired in JDK15
boolx86falsedefine_pd_global
cpu/x86/globals_x86.hpp
ThreadLocalHandshakesDeprecated in JDK13
Obsoleted in JDK14
Expired in JDK15
boolzerofalsedefine_pd_global
cpu/zero/globals_zero.hpp
ThreadPriorityPolicyintxruntime0
range(0, 1)
product
0 : Normal. 
 VM chooses priorities that are appropriate for normal 
 applications. On Solaris NORM_PRIORITY and above are mapped 
 to normal native priority. Java priorities below 
 NORM_PRIORITY map to lower native priority values. On 
 Windows applications are allowed to use higher native 
 priorities. However, with ThreadPriorityPolicy=0, VM will 
 not use the highest possible native priority, 
 THREAD_PRIORITY_TIME_CRITICAL, as it may interfere with 
 system threads. On Linux thread priorities are ignored 
 because the OS does not support static priority in 
 SCHED_OTHER scheduling class which is the only choice for 
 non-root, non-realtime applications. 

1 : Aggressive. 
 Java thread priorities map over to the entire range of 
 native thread priorities. Higher Java thread priorities map 
 to higher native thread priorities. This policy should be 
 used with care, as sometimes it can cause performance 
 degradation in the application and/or the entire system. On 
 Linux/BSD/macOS this policy requires root privilege or an 
 extended capability.
share/runtime/globals.hpp
ThreadPriorityVerboseboolruntimefalseproduct
Print priority changes
share/runtime/globals.hpp
ThreadStackSizeintxaixppc2048define_pd_global
// 0 => use system default
os_cpu/aix_ppc/globals_aix_ppc.hpp
ThreadStackSizeintxbsdaarch642048define_pd_global
// 0 => use system default
os_cpu/bsd_aarch64/globals_bsd_aarch64.hpp
ThreadStackSizeintxbsdx86320define_pd_global
os_cpu/bsd_x86/globals_bsd_x86.hpp
ThreadStackSizeintxbsdzero1536define_pd_global
os_cpu/bsd_zero/globals_bsd_zero.hpp
ThreadStackSizeintxlinuxaarch642048define_pd_global
// 0 => use system default
os_cpu/linux_aarch64/globals_linux_aarch64.hpp
ThreadStackSizeintxlinuxarm320define_pd_global
os_cpu/linux_arm/globals_linux_arm.hpp
ThreadStackSizeintxlinuxppc2048define_pd_global
// 0 => use system default
os_cpu/linux_ppc/globals_linux_ppc.hpp
ThreadStackSizeintxlinuxs3901024define_pd_global
// 0 => Use system default.
os_cpu/linux_s390/globals_linux_s390.hpp
ThreadStackSizeintxlinuxx86320define_pd_global
os_cpu/linux_x86/globals_linux_x86.hpp
ThreadStackSizeintxlinuxzero1536define_pd_global
os_cpu/linux_zero/globals_linux_zero.hpp
ThreadStackSizeintxruntimeproduct_pd
Thread Stack Size (in Kbytes)
share/runtime/globals.hpp
ThreadStackSizeintxsparc1024define_pd_global
cpu/sparc/globals_sparc.hpp
ThreadStackSizeintxsolarisx86320define_pd_global
os_cpu/solaris_x86/globals_solaris_x86.hpp
ThreadStackSizeintxwindowsaarch640define_pd_global
// 0 => use system default
os_cpu/windows_aarch64/globals_windows_aarch64.hpp
ThreadStackSizeintxwindowsx860define_pd_global
// 0 => use system default
os_cpu/windows_x86/globals_windows_x86.hpp
ThresholdToleranceuintxgc10
range(0, 100)
product
Allowed collection cost difference between generations
share/gc/shared/gc_globals.hpp
Tier0BackedgeNotifyFreqLogintxruntime10
range(0, 30)
product
Interpreter (tier 0) invocation notification frequency
share/runtime/globals.hpp
Tier0InvokeNotifyFreqLogintxruntime7
range(0, 30)
product
Interpreter (tier 0) invocation notification frequency
share/runtime/globals.hpp
Tier0ProfilingStartPercentageintxruntime200
range(0, max_jint)
product
Start profiling in interpreter if the counters exceed tier 3 
thresholds by the specified percentage
share/runtime/globals.hpp
Tier23InlineeNotifyFreqLogintxruntime20
range(0, 30)
product
Inlinee invocation (tiers 2 and 3) notification frequency
share/runtime/globals.hpp
Tier2BackEdgeThresholdintxruntime0
range(0, max_jint)
product
Back edge threshold at which tier 2 compilation is invoked
share/runtime/globals.hpp
Tier2BackedgeNotifyFreqLogintxruntime14
range(0, 30)
product
C1 without MDO (tier 2) invocation notification frequency
share/runtime/globals.hpp
Tier2CompileThresholdintxruntime0
range(0, max_jint)
product
threshold at which tier 2 compilation is invoked
share/runtime/globals.hpp
Tier2InvokeNotifyFreqLogintxruntime11
range(0, 30)
product
C1 without MDO (tier 2) invocation notification frequency
share/runtime/globals.hpp
Tier3AOTBackEdgeThresholdintxruntime120000
range(0, max_jint)
product
Back edge threshold at which tier 3 OSR compilation is invoked 
if coming from AOT
share/runtime/globals.hpp
Tier3AOTCompileThresholdintxruntime15000
range(0, max_jint)
product
Threshold at which tier 3 compilation is invoked (invocation 
minimum must be satisfied) if coming from AOT
share/runtime/globals.hpp
Tier3AOTInvocationThresholdintxruntime10000
range(0, max_jint)
product
Compile if number of method invocations crosses this 
threshold if coming from AOT
share/runtime/globals.hpp
Tier3AOTMinInvocationThresholdintxruntime1000
range(0, max_jint)
product
Minimum invocation to compile at tier 3 if coming from AOT
share/runtime/globals.hpp
Tier3BackEdgeThresholdintxruntime60000
range(0, max_jint)
product
Back edge threshold at which tier 3 OSR compilation is invoked
share/runtime/globals.hpp
Tier3BackedgeNotifyFreqLogintxruntime13
range(0, 30)
product
C1 with MDO profiling (tier 3) invocation notification 
frequency
share/runtime/globals.hpp
Tier3CompileThresholdintxruntime2000
range(0, max_jint)
product
Threshold at which tier 3 compilation is invoked (invocation 
minimum must be satisfied)
share/runtime/globals.hpp
Tier3DelayOffintxruntime2
range(0, max_jint)
product
If C2 queue size is less than this amount per compiler thread 
allow methods compiled at tier 2 transition to tier 3
share/runtime/globals.hpp
Tier3DelayOnintxruntime5
range(0, max_jint)
product
If C2 queue size grows over this amount per compiler thread 
stop compiling at tier 3 and start compiling at tier 2
share/runtime/globals.hpp
Tier3InvocationThresholdintxruntime200
range(0, max_jint)
product
Compile if number of method invocations crosses this 
threshold
share/runtime/globals.hpp
Tier3InvokeNotifyFreqLogintxruntime10
range(0, 30)
product
C1 with MDO profiling (tier 3) invocation notification 
frequency
share/runtime/globals.hpp
Tier3LoadFeedbackintxruntime5
range(0, max_jint)
product
Tier 3 thresholds will increase twofold when C1 queue size 
reaches this amount per compiler thread
share/runtime/globals.hpp
Tier3MinInvocationThresholdintxruntime100
range(0, max_jint)
product
Minimum invocation to compile at tier 3
share/runtime/globals.hpp
Tier4BackEdgeThresholdintxruntime40000
range(0, max_jint)
product
Back edge threshold at which tier 4 OSR compilation is invoked
share/runtime/globals.hpp
Tier4CompileThresholdintxruntime15000
range(0, max_jint)
product
Threshold at which tier 4 compilation is invoked (invocation 
minimum must be satisfied
share/runtime/globals.hpp
Tier4InvocationThresholdintxruntime5000
range(0, max_jint)
product
Compile if number of method invocations crosses this 
threshold
share/runtime/globals.hpp
Tier4LoadFeedbackintxruntime3
range(0, max_jint)
product
Tier 4 thresholds will increase twofold when C2 queue size 
reaches this amount per compiler thread
share/runtime/globals.hpp
Tier4MinInvocationThresholdintxruntime600
range(0, max_jint)
product
Minimum invocation to compile at tier 4
share/runtime/globals.hpp
TieredCompilationboolaarch64falsedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
TieredCompilationboolarmfalsedefine_pd_global
cpu/arm/c2_globals_arm.hpp
TieredCompilationboolruntimeproduct_pd
Enable tiered compilation
share/runtime/globals.hpp
TieredCompilationboolppcfalsedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
TieredCompilationbools390trueInTiereddefine_pd_global
cpu/s390/c2_globals_s390.hpp
TieredCompilationboolsparcfalsedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
TieredCompilationboolx86falsedefine_pd_global
cpu/x86/c1_globals_x86.hpp
TieredCompileTaskTimeoutintxruntime50
range(0, max_intx)
product
Kill compile task if method was not used within 
given timeout in milliseconds
share/runtime/globals.hpp
TieredRateUpdateMaxTimeintxruntime25
range(0, max_intx)
product
Maximum rate sampling interval (in milliseconds)
share/runtime/globals.hpp
TieredRateUpdateMinTimeintxruntime1
range(0, max_intx)
product
Minimum rate sampling interval (in milliseconds)
share/runtime/globals.hpp
TieredStopAtLevelintxruntime4
range(0, 4)
product
Stop at given compilation level
share/runtime/globals.hpp
TimeCompilationPolicyboolruntimefalsedevelop
Time the compilation policy
share/runtime/globals.hpp
TimeEachLinearScanboolc1falsedevelop
print detailed timing of each LinearScan run
share/c1/c1_globals.hpp
TimeLinearScanboolc1falseproduct
detailed timing of LinearScan phases
share/c1/c1_globals.hpp
TimeLivenessAnalysisboolruntimefalsedevelop
Time computation of bytecode liveness analysis
share/runtime/globals.hpp
TimeOopMap2boolruntimefalsedevelop
Time calls to GenerateOopMap::compute_map() individually
share/runtime/globals.hpp
TimeOopMapboolruntimefalsedevelop
Time calls to GenerateOopMap::compute_map() in sum
share/runtime/globals.hpp
TraceBytecodesAtintxruntime0develop
Trace bytecodes starting with specified bytecode number
share/runtime/globals.hpp
TraceBytecodesboolruntimefalsedevelop
Trace bytecode execution
share/runtime/globals.hpp
TraceCISCSpillboolc2falsenotproduct
Trace allocators use of cisc spillable instructions
share/opto/c2_globals.hpp
TraceCallFixupboolruntimefalsedevelop
Trace all call fixups
share/runtime/globals.hpp
TraceCodeBlobStacksboolruntimefalsenotproduct
Trace stack-walk of codeblobs
share/runtime/globals.hpp
TraceCompilationPolicyboolruntimefalsedevelop
Trace compilation policy
share/runtime/globals.hpp
TraceCompiledICboolruntimefalsedevelop
Trace changes of compiled IC
share/runtime/globals.hpp
TraceCompilerThreadsboolruntimefalsediagnostic
Trace creation and removal of compiler threads
share/runtime/globals.hpp
TraceCreateZombiesboolruntimefalsedevelop
trace creation of zombie nmethods
share/runtime/globals.hpp
TraceDeoptimizationboolruntimefalsedevelop
Trace deoptimization
share/runtime/globals.hpp
TraceDependenciesboolruntimefalsedevelop
Trace dependencies
share/runtime/globals.hpp
TraceDerivedPointersboolruntimefalsedevelop
Trace traversal of derived pointers on stack
share/runtime/globals.hpp
TraceFPURegisterUsageboolc1falsedevelop
Trace usage of FPU registers at start of blocks (intel only)
share/c1/c1_globals.hpp
TraceFPUStackboolc1falsedevelop
Trace emulation of the FPU stack (intel only)
share/c1/c1_globals.hpp
TraceFinalizerRegistrationboolruntimefalsedevelop
Trace registration of final references
share/runtime/globals.hpp
TraceFrequencyInliningboolruntimefalsedevelop
Trace frequency based inlining
share/runtime/globals.hpp
TraceGCTaskManagerboolgcfalsedevelop
Trace actions of the GC task manager
share/gc/parallel/parallel_globals.hpp
TraceGCTaskQueueboolgcfalsedevelop
Trace actions of the GC task queues
share/gc/parallel/parallel_globals.hpp
TraceICBufferboolruntimefalsedevelop
Trace usage of IC buffer
share/runtime/globals.hpp
TraceICsboolruntimefalsedevelop
Trace inline cache changes
share/runtime/globals.hpp
TraceInlineCacheClearingboolruntimefalsedevelop
Trace clearing of inline caches in nmethods
share/runtime/globals.hpp
TraceInvocationCounterOverflowboolruntimefalsenotproduct
Trace method invocation counter overflow
share/runtime/globals.hpp
TraceInvokeDynamicObsoleted in JDK16
Expired in JDK17
boolruntimefalsedevelop
trace internal invoke dynamic operations
share/runtime/globals.hpp
TraceIterativeGVNboolc2falsedevelop
Print progress during Iterative Global Value Numbering
share/opto/c2_globals.hpp
TraceJVMTIObjectTaggingObsoleted in JDK16
Expired in JDK17
boolruntimefalsediagnostic
Trace JVMTI object tagging calls
share/runtime/globals.hpp
TraceJVMTIccstrruntimeNULLproduct
Trace flags for JVMTI functions and events
share/runtime/globals.hpp
TraceJavaAssertionsboolruntimefalsedevelop
Trace java language assertions
share/runtime/globals.hpp
TraceLinearScanLevelintxc10
range(0, 4)
develop
Debug levels for the linear scan allocator
share/c1/c1_globals.hpp
TraceLivenessGenboolruntimefalsedevelop
Trace the generation of liveness analysis information
share/runtime/globals.hpp
TraceLivenessQueryboolruntimefalsenotproduct
Trace queries of liveness analysis information
share/runtime/globals.hpp
TraceLongCompilesboolruntimefalsedevelop
Print out every time compilation is longer than 
a given threshold
share/runtime/globals.hpp
TraceLoopLimitCheckboolc2falsedevelop
Trace generation of loop limits checks
share/opto/c2_globals.hpp
TraceLoopOptsboolc2falsedevelop
Trace executed loop optimizations
share/opto/c2_globals.hpp
TraceLoopPredicateboolc2falsedevelop
Trace generation of loop predicates
share/opto/c2_globals.hpp
TraceLoopUnswitchingboolc2falsenotproduct
Trace loop unswitching
share/opto/c2_globals.hpp
TraceMethodHandlesObsoleted in JDK16
Expired in JDK17
boolruntimefalsedevelop
trace internal method handle operations
share/runtime/globals.hpp
TraceMethodReplacementboolruntimefalsedevelop
Print when methods are replaced do to recompilation
share/runtime/globals.hpp
TraceNMethodInstallsDeprecated in JDK13
Obsoleted in JDK14
Expired in JDK15
boolruntimefalsediagnostic
Trace nmethod installation
share/runtime/globals.hpp
TraceNewOopMapGenerationDetailedboolruntimefalsedevelop
Trace OopMapGeneration: print detailed cell states
share/runtime/globals.hpp
TraceNewOopMapGenerationboolruntimefalsedevelop
Trace OopMapGeneration
share/runtime/globals.hpp
TraceNewVectorsboolc2falsenotproduct
Trace creation of Vector nodes
share/opto/c2_globals.hpp
TraceOnStackReplacementboolruntimefalsenotproduct
Trace on stack replacement
share/runtime/globals.hpp
TraceOopMapRewritesboolruntimefalsedevelop
Trace rewriting of method oops during oop map generation
share/runtime/globals.hpp
TraceOptimizeFillboolc2falsedevelop
print detailed information about fill conversion
share/opto/c2_globals.hpp
TraceOptoOutputboolc2falsenotproduct
Trace pipelining information
share/opto/c2_globals.hpp
TraceOptoParseboolc2falsedevelop
Trace bytecode parse and control-flow merge
share/opto/c2_globals.hpp
TraceOptoPipeliningboolc2falsenotproduct
Trace pipelining information
share/opto/c2_globals.hpp
TraceParallelOldGCDensePrefixboolgcfalsedevelop
Trace dense prefix computation for ParallelOldGC
share/gc/parallel/parallel_globals.hpp
TraceParallelOldGCMarkingPhaseboolgcfalsedevelop
Trace marking phase in ParallelOldGC
share/gc/parallel/parallel_globals.hpp
TracePartialPeelingboolc2falsenotproduct
Trace partial peeling (loop rotation) information
share/opto/c2_globals.hpp
TracePatchingboolc1falsedevelop
Trace patching of field access on uninitialized classes
share/c1/c1_globals.hpp
TracePcPatchingboolruntimefalsedevelop
Trace usage of frame::patch_pc
share/runtime/globals.hpp
TracePhaseCCPboolc2falsenotproduct
Print progress during Conditional Constant Propagation
share/opto/c2_globals.hpp
TracePostallocExpandboolc2falsedevelop
Trace expanding nodes after
 register allocation.
share/opto/c2_globals.hpp
TracePredicateFailedTrapsboolc1falsedevelop
trace runtime traps caused by predicate failure
share/c1/c1_globals.hpp
TraceProfileInterpreterboolruntimefalsedevelop
Trace profiling at the bytecode level during interpretation. 
This outputs the profiling information collected to improve 
jit compilation.
share/runtime/globals.hpp
TraceProfileTripCountboolc2falsenotproduct
Trace profile loop trip count information
share/opto/c2_globals.hpp
TraceRangeCheckEliminationboolc1falsedevelop
Trace Range Check Elimination
share/c1/c1_globals.hpp
TraceRangeLimitCheckboolc2falsedevelop
Trace additional overflow checks in RCE
share/opto/c2_globals.hpp
TraceRelocatorboolruntimefalsedevelop
Trace the bytecode relocator
share/runtime/globals.hpp
TraceSpillingboolc2falsediagnostic
Trace spilling
share/opto/c2_globals.hpp
TraceSuperWordLoopUnrollAnalysisboolc2falsenotproduct
Trace what Superword Level Parallelism analysis applies
share/opto/c2_globals.hpp
TraceSuperWordboolc2falsenotproduct
Trace superword transforms
share/opto/c2_globals.hpp
TraceSuspendWaitFailuresObsoleted in JDK17
Expired in JDK18
boolruntimefalseproduct
Trace external suspend wait failures
share/runtime/globals.hpp
TraceTrapsboolaarch64falseproduct
Trace all traps the signal handler
cpu/aarch64/globals_aarch64.hpp
TraceTrapsboolppcfalseproduct
Trace all traps the signal handler
handles.
cpu/ppc/globals_ppc.hpp
TraceTrapsbools390falseproduct
Trace all traps the signal handler
handles.
cpu/s390/globals_s390.hpp
TraceTypeProfileboolc2falsediagnostic
Trace type profile
share/opto/c2_globals.hpp
TraceUncollectedSpeculationsbooljvmcifalsedevelop
Print message when a failed speculation was not collected
share/jvmci/jvmci_globals.hpp
TrackedInitializationLimitintxc250
range(0, 65535)
product
When initializing fields, track up to this many words
share/opto/c2_globals.hpp
TransmitErrorReportObsoleted in JDK12
Expired in JDK13
boolruntimefalseproduct
Enable error report transmission on erroneous termination
share/runtime/globals.hpp
TrapBasedICMissChecksboolppctrueproduct
Raise and handle SIGTRAP if inline cache miss detected.
cpu/ppc/globals_ppc.hpp
TrapBasedNotEntrantChecksboolppctrueproduct
Raise and handle SIGTRAP if calling not entrant or zombie
 method.
cpu/ppc/globals_ppc.hpp
TrapBasedNullChecksboolaarch64falsedefine_pd_global
cpu/aarch64/globals_aarch64.hpp
TrapBasedNullChecksboolarmfalsedefine_pd_global
// Not needed
cpu/arm/globals_arm.hpp
TrapBasedNullChecksboolruntimeproduct_pd
Generate code for null checks that uses a cmp and trap 
instruction raising SIGTRAP. This is only used if an access to
null (+offset) will not raise a SIGSEGV, i.e.,
ImplicitNullChecks don't work (PPC64).
share/runtime/globals.hpp
TrapBasedNullChecksboolppctruedefine_pd_global
cpu/ppc/globals_ppc.hpp
TrapBasedNullChecksbools390truedefine_pd_global
cpu/s390/globals_s390.hpp
TrapBasedNullChecksboolsparcfalsedefine_pd_global
// Not needed on sparc.
cpu/sparc/globals_sparc.hpp
TrapBasedNullChecksboolx86falsedefine_pd_global
// Not needed on x86.
cpu/x86/globals_x86.hpp
TrapBasedNullChecksboolzerofalsedefine_pd_global
cpu/zero/globals_zero.hpp
TrapBasedRangeChecksboolaarch64falsedefine_pd_global
// Not needed.
cpu/aarch64/c2_globals_aarch64.hpp
TrapBasedRangeChecksboolc2product_pd
Generate code for range checks that uses a cmp and trap 
instruction raising SIGTRAP. Used on PPC64.
share/opto/c2_globals.hpp
TrapBasedRangeChecksboolppctruedefine_pd_global
cpu/ppc/c2_globals_ppc.hpp
TrapBasedRangeChecksbools390falsedefine_pd_global
// Not needed on z/Architecture.
cpu/s390/c2_globals_s390.hpp
TrapBasedRangeChecksboolsparcfalsedefine_pd_global
// Not needed on sparc.
cpu/sparc/c2_globals_sparc.hpp
TrapBasedRangeChecksboolx86falsedefine_pd_global
// Not needed on x86.
cpu/x86/c2_globals_x86.hpp
TrustFinalNonStaticFieldsboolruntimefalseexperimental
trust final non-static declarations for constant folding
share/runtime/globals.hpp
TwoOperandLIRFormboolaarch64falsedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
TwoOperandLIRFormboolarmfalsedefine_pd_global
cpu/arm/c1_globals_arm.hpp
TwoOperandLIRFormboolc1develop_pd
true if LIR requires src1 and dst to match in binary LIR ops
share/c1/c1_globals.hpp
TwoOperandLIRFormboolppcfalsedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
TwoOperandLIRFormbools390truedefine_pd_global
cpu/s390/c1_globals_s390.hpp
TwoOperandLIRFormboolsparcfalsedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
TwoOperandLIRFormboolx86truedefine_pd_global
cpu/x86/c1_globals_x86.hpp
TypeProfileArgsLimitintxruntime2
range(0, 16)
product
max number of call arguments to consider for type profiling
share/runtime/globals.hpp
TypeProfileCastsboolruntimetruedevelop
treat casts like calls for purposes of type profiling
share/runtime/globals.hpp
TypeProfileLeveluintxaarch64111define_pd_global
cpu/aarch64/globals_aarch64.hpp
TypeProfileLeveluintxarm0define_pd_global
cpu/arm/globals_arm.hpp
TypeProfileLeveluintxruntimeproduct_pd
=XYZ, with Z: Type profiling of arguments at call; 
Y: Type profiling of return value at call; 
X: Type profiling of parameters to methods; 
X, Y and Z in 0=off ; 1=jsr292 only; 2=all methods
share/runtime/globals.hpp
TypeProfileLeveluintxppc111define_pd_global
cpu/ppc/globals_ppc.hpp
TypeProfileLeveluintxs390111define_pd_global
cpu/s390/globals_s390.hpp
TypeProfileLeveluintxsparc111define_pd_global
cpu/sparc/globals_sparc.hpp
TypeProfileLeveluintxx86111define_pd_global
cpu/x86/globals_x86.hpp
TypeProfileLeveluintxzero0define_pd_global
cpu/zero/globals_zero.hpp
TypeProfileMajorReceiverPercentintxc290
range(0, 100)
product
% of major receiver type to all profiled receivers
share/opto/c2_globals.hpp
TypeProfileParmsLimitintxruntime2
range(-1, 64)
product
max number of incoming parameters to consider for type profiling
, -1 for all
share/runtime/globals.hpp
TypeProfileWidthintxruntime2
range(0, 8)
product
Number of receiver types to record in call/cast profile
share/runtime/globals.hpp
UncommonNullCastboolaarch64truedefine_pd_global
// Uncommon-trap NULLs past to check cast
cpu/aarch64/globals_aarch64.hpp
UncommonNullCastboolarmtruedefine_pd_global
// Uncommon-trap NULLs past to check cast
cpu/arm/globals_arm.hpp
UncommonNullCastboolruntimedevelop_pd
track occurrences of null in casts; adjust compiler tactics
share/runtime/globals.hpp
UncommonNullCastboolppctruedefine_pd_global
// Uncommon-trap NULLs passed to check cast.
cpu/ppc/globals_ppc.hpp
UncommonNullCastbools390truedefine_pd_global
// Uncommon-trap NULLs passed to check cast.
cpu/s390/globals_s390.hpp
UncommonNullCastboolsparctruedefine_pd_global
// Uncommon-trap NULLs passed to check cast
cpu/sparc/globals_sparc.hpp
UncommonNullCastboolx86truedefine_pd_global
// Uncommon-trap NULLs passed to check cast
cpu/x86/globals_x86.hpp
UncommonNullCastboolzerotruedefine_pd_global
cpu/zero/globals_zero.hpp
UnguardOnExecutionViolationintxruntime0
range(0, 2)
product
Unguard page and retry on no-execute fault (Win32 only) 

0=off, 1=conservative, 2=aggressive
share/runtime/globals.hpp
UnlinkSymbolsALotDeprecated in JDK11
Obsoleted in JDK12
Expired in JDK13
boolruntimefalseproduct
Unlink unreferenced symbols from the symbol table at safepoints
share/runtime/globals.hpp
UnlockDiagnosticVMOptionsboolruntimetrueInDebugdiagnostic
Enable normal processing of flags relating to field diagnostics
share/runtime/globals.hpp
UnlockExperimentalVMOptionsboolruntimefalseexperimental
Enable normal processing of flags relating to experimental 
features
share/runtime/globals.hpp
UnrollLimitForProfileCheckintxc21
range(0, max_intx)
develop
Don't use profile_trip_cnt() to restrict unrolling until 
unrolling would push the number of unrolled iterations above 
UnrollLimitForProfileCheck. A higher value allows more 
unrolling. Zero acts as a very large value.
share/opto/c2_globals.hpp
Use24BitFPModeboolc2truedevelop
Set 24-bit FPU mode on a per-compile basis
share/opto/c2_globals.hpp
Use24BitFPboolc2truedevelop
use FP instructions that produce 24-bit precise results
share/opto/c2_globals.hpp
Use64KPagesThresholduintxaix0develop
4K/64K page allocation threshold.
os/aix/globals_aix.hpp
Use64KPagesboolaixtrueproduct
Use 64K pages if available.
os/aix/globals_aix.hpp
UseAESCTRIntrinsicsboolruntimefalsediagnostic
Use intrinsics for the paralleled version of AES/CTR crypto
share/runtime/globals.hpp
UseAESIntrinsicsboolruntimefalsediagnostic
Use intrinsics for AES versions of crypto
share/runtime/globals.hpp
UseAESboolruntimefalseproduct
Control whether AES instructions are used when available
share/runtime/globals.hpp
UseAOTStrictLoadingboolruntimefalsediagnostic
Exit the VM if any of the AOT libraries has invalid config
share/runtime/globals.hpp
UseAOTboolruntimefalseexperimental
Use AOT compiled files
share/runtime/globals.hpp
UseAVXintxx863
range(0, 99)
product
Highest supported AVX instructions set on x86/x64
cpu/x86/globals_x86.hpp
UseAdaptiveGCBoundaryObsoleted in JDK15
Expired in JDK16
boolgcfalseproduct
Allow young-old boundary to move
share/gc/shared/gc_globals.hpp
UseAdaptiveGenerationSizePolicyAtMajorCollectionboolgctrueproduct
Use adaptive young-old sizing policies at major collections
share/gc/shared/gc_globals.hpp
UseAdaptiveGenerationSizePolicyAtMinorCollectionboolgctrueproduct
Use adaptive young-old sizing policies at minor collections
share/gc/shared/gc_globals.hpp
UseAdaptiveNUMAChunkSizingboolruntimetrueproduct
Enable adaptive chunk sizing for NUMA
share/runtime/globals.hpp
UseAdaptiveSizeDecayMajorGCCostboolgctrueproduct
Adaptive size decays the major cost for long major intervals
share/gc/shared/gc_globals.hpp
UseAdaptiveSizePolicyFootprintGoalboolgctrueproduct
Use adaptive minimum footprint as a goal
share/gc/shared/gc_globals.hpp
UseAdaptiveSizePolicyWithSystemGCboolgcfalseproduct
Include statistics from System.gc() for adaptive size policy
share/gc/shared/gc_globals.hpp
UseAdaptiveSizePolicyboolgctrueproduct
Use adaptive generation sizing policies
share/gc/shared/gc_globals.hpp
UseAddressNopboolx86falseproduct
Use '0F 1F [addr]' NOP instructions on x86 cpus
cpu/x86/globals_x86.hpp
UseAdler32Intrinsicsboolruntimefalsediagnostic
use intrinsics for java.util.zip.Adler32
share/runtime/globals.hpp
UseBASE64Intrinsicsboolruntimefalseproduct
Use intrinsics for java.util.Base64
share/runtime/globals.hpp
UseBMI1Instructionsboolx86falseproduct
Use BMI1 instructions
cpu/x86/globals_x86.hpp
UseBMI2Instructionsboolx86falseproduct
Use BMI2 instructions
cpu/x86/globals_x86.hpp
UseBarriersForVolatileObsoleted in JDK15
Expired in JDK16
boolaarch64falseproduct
Use memory barriers to implement volatile accesses
cpu/aarch64/globals_aarch64.hpp
UseBiasedLockingDeprecated in JDK15
Obsoleted in JDK18
Expired in JDK19
boolruntimetrueproduct
Enable biased locking in JVM
share/runtime/globals.hpp
UseBimorphicInliningboolc2trueproduct
Profiling based inlining for two receivers
share/opto/c2_globals.hpp
UseBlockCopyboolsparcfalseproduct
Use special cpu instructions for block copy
cpu/sparc/globals_sparc.hpp
UseBlockZeroingboolaarch64trueproduct
Use DC ZVA for block zeroing
cpu/aarch64/globals_aarch64.hpp
UseBlockZeroingboolsparcfalseproduct
Use special cpu instructions for block zeroing
cpu/sparc/globals_sparc.hpp
UseBootstrapCallInfointruntime1diagnostic
0: when resolving InDy or ConDy, force all BSM arguments to be 
resolved before the bootstrap method is called; 1: when a BSM 
that may accept a BootstrapCallInfo is detected, use that API 
to pass BSM arguments, which allows the BSM to delay their 
resolution; 2+: stress test the BCI API by calling more BSMs 
via that API, instead of with the eagerly-resolved array.
share/runtime/globals.hpp
UseBsdPosixThreadCPUClocksObsoleted in JDK16
Expired in JDK17
boolbsdtrueproduct
enable fast Bsd Posix clocks where available
os/bsd/globals_bsd.hpp
UseByteReverseInstructionbools390trueproduct
Use byte reverse instruction.
cpu/s390/globals_s390.hpp
UseByteReverseInstructionsboolppcfalseproduct
Use byte reverse instructions.
cpu/ppc/globals_ppc.hpp
UseC1Optimizationsboolc1truedevelop
Turn on C1 optimizations
share/c1/c1_globals.hpp
UseCASForSwapboolsparcfalsedevelop
Do not use swap instructions, but only CAS (in a loop) on SPARC
cpu/sparc/globals_sparc.hpp
UseCBCondboolsparcfalseproduct
Use compare and branch instruction on SPARC
cpu/sparc/globals_sparc.hpp
UseCHAboolruntimetruedevelop
Enable CHA
share/runtime/globals.hpp
UseCISCSpillboolaarch64falsedefine_pd_global
cpu/aarch64/c2_globals_aarch64.hpp
UseCISCSpillboolc2develop_pd
Use ADLC supplied cisc instructions during allocation
share/opto/c2_globals.hpp
UseCISCSpillboolppcfalsedefine_pd_global
cpu/ppc/c2_globals_ppc.hpp
UseCISCSpillbools390truedefine_pd_global
cpu/s390/c2_globals_s390.hpp
UseCISCSpillboolsparcfalsedefine_pd_global
cpu/sparc/c2_globals_sparc.hpp
UseCISCSpillboolx86truedefine_pd_global
cpu/x86/c2_globals_x86.hpp
UseCLMULboolx86falseproduct
Control whether CLMUL instructions can be used on x86/x64
cpu/x86/globals_x86.hpp
UseCMSBestFitObsoleted in JDK14
Expired in JDK15
boolgctrueproduct
Use CMS best fit allocation strategy
share/gc/cms/cms_globals.hpp
UseCMSInitiatingOccupancyOnlyObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
Only use occupancy as a criterion for starting a CMS collection
share/gc/cms/cms_globals.hpp
UseCMoveUnconditionallyboolc2falseproduct
Use CMove (scalar and vector) ignoring profitability test.
share/opto/c2_globals.hpp
UseCRC32CIntrinsicsboolruntimefalsediagnostic
use intrinsics for java.util.zip.CRC32C
share/runtime/globals.hpp
UseCRC32Intrinsicsboolruntimefalsediagnostic
use intrinsics for java.util.zip.CRC32
share/runtime/globals.hpp
UseCRC32boolaarch64falseproduct
Use CRC32 instructions for CRC32 computation
cpu/aarch64/globals_aarch64.hpp
UseCharacterCompareIntrinsicsboolc2falsediagnostic
Enables intrinsification of java.lang.Character functions
share/opto/c2_globals.hpp
UseCodeAgingObsoleted in JDK20
Expired in JDK21
boolruntimetrueproduct
Insert counter to detect warm methods
share/runtime/globals.hpp
UseCodeCacheFlushingboolruntimetrueproduct
Remove cold/old nmethods from the code cache
share/runtime/globals.hpp
UseCompilerboolruntimetrueproduct
Use Just-In-Time compilation
share/runtime/globals.hpp
UseCompressedClassPointersboolruntimefalselp64_product
Use 32-bit class pointers in 64-bit VM. 
lp64_product means flag is always constant in 32 bit VM
share/runtime/globals.hpp
UseCompressedOopsboolruntimefalselp64_product
Use 32-bit object references in 64-bit VM. 
lp64_product means flag is always constant in 32 bit VM
share/runtime/globals.hpp
UseConcMarkSweepGCObsoleted in JDK14
Expired in JDK15
boolgcfalseproduct
Use Concurrent Mark-Sweep GC in the old generation
share/gc/shared/gc_globals.hpp
UseCondCardMarkboolgcfalseproduct
Check for already marked card before updating card table
share/gc/shared/gc_globals.hpp
UseContainerCpuSharesDeprecated in JDK19
Obsoleted in JDK20
Expired in JDK21
boollinuxfalseproduct
Include CPU shares in the CPU availability
 calculation.
os/linux/globals_linux.hpp
UseContainerSupportboollinuxtrueproduct
Enable detection and runtime container configuration support
os/linux/globals_linux.hpp
UseCopySignIntrinsicboolruntimefalsediagnostic
Enables intrinsification of Math.copySign
share/runtime/globals.hpp
UseCountLeadingZerosInstructionboolx86falseproduct
Use count leading zeros instruction
cpu/x86/globals_x86.hpp
UseCountLeadingZerosInstructionsPPC64boolppctrueproduct
Use count leading zeros instructions.
cpu/ppc/globals_ppc.hpp
UseCountTrailingZerosInstructionboolx86falseproduct
Use count trailing zeros instruction
cpu/x86/globals_x86.hpp
UseCountTrailingZerosInstructionsPPC64boolppcfalseproduct
Use count trailing zeros instructions.
cpu/ppc/globals_ppc.hpp
UseCountedLoopSafepointsboolc2falseproduct
Force counted loops to keep a safepoint
share/opto/c2_globals.hpp
UseCounterDecayObsoleted in JDK22
Expired in JDK23
boolruntimetrueproduct
Adjust recompilation counters
share/runtime/globals.hpp
UseCpuAllocPathboollinuxfalsediagnostic
Use CPU_ALLOC code path in os::active_processor_count
os/linux/globals_linux.hpp
UseCriticalCMSThreadPriorityboolruntimefalseexperimental
ConcurrentMarkSweep thread runs at critical scheduling priority
share/runtime/globals.hpp
UseCriticalCompilerThreadPriorityboolruntimefalseexperimental
Compiler thread(s) run at critical scheduling priority
share/runtime/globals.hpp
UseCriticalJavaThreadPriorityboolruntimefalseexperimental
Java thread priority 10 maps to critical scheduling priority
share/runtime/globals.hpp
UseDetachedThreadsboolruntimetruedevelop
Use detached threads that are recycled upon termination 
(for Solaris only)
share/runtime/globals.hpp
UseDivModboolc2trueproduct
Use combined DivMod instruction if available
share/opto/c2_globals.hpp
UseDynamicNumberOfCompilerThreadsboolruntimetrueproduct
Dynamically choose the number of parallel compiler threads
share/runtime/globals.hpp
UseDynamicNumberOfGCThreadsboolgctrueproduct
Dynamically choose the number of threads up to a maximum of 
ParallelGCThreads parallel collectors will use for garbage 
collection work
share/gc/shared/gc_globals.hpp
UseEpsilonGCboolgcfalseexperimental
Use the Epsilon (no-op) garbage collector
share/gc/shared/gc_globals.hpp
UseExactTypesboolc2truedevelop
Use exact types to eliminate array store checks and v-calls
share/opto/c2_globals.hpp
UseExplicitCommitboolaixfalseproduct
Explicit commit for virtual memory.
os/aix/globals_aix.hpp
UseExtendedFileIOboolsolaristrueproduct
Enable workaround for limitations of stdio FILE structure
os/solaris/globals_solaris.hpp
UseExtendedLoadAndReserveInstructionsPPC64boolppcfalseproduct
Use extended versions of load-and-reserve instructions.
cpu/ppc/globals_ppc.hpp
UseFMAboolruntimefalseproduct
Control whether FMA instructions are used when available
share/runtime/globals.hpp
UseFPUForSpillingboolc2falseproduct
Spill integer registers to FPU instead of stack when possible
share/opto/c2_globals.hpp
UseFakeTimersboolruntimefalsedevelop
Tell whether the VM should use system time or a fake timer
share/runtime/globals.hpp
UseFastAccessorMethodsboolzerotrueproduct
Use fast method entry code for accessor methods
cpu/zero/globals_zero.hpp
UseFastEmptyMethodsboolzerotrueproduct
Use fast method entry code for empty methods
cpu/zero/globals_zero.hpp
UseFastJNIAccessorsboolruntimetrueproduct
Use optimized versions of GetField
share/runtime/globals.hpp
UseFastLockingboolc1truedevelop
Use fast inlined locking code
share/c1/c1_globals.hpp
UseFastNewInstanceboolc1truedevelop
Use fast inlined instance allocation
share/c1/c1_globals.hpp
UseFastNewObjectArrayboolc1truedevelop
Use fast inlined object array allocation
share/c1/c1_globals.hpp
UseFastNewTypeArrayboolc1truedevelop
Use fast inlined type array allocation
share/c1/c1_globals.hpp
UseFastSignatureHandlersboolruntimetruedevelop
Use fast signature handlers for native calls
share/runtime/globals.hpp
UseFastStosbboolx86falseproduct
Use fast-string operation for zeroing: rep stosb
cpu/x86/globals_x86.hpp
UseFastUnorderedTimeStampsboolruntimefalseexperimental
Use platform unstable time where supported for timestamps only
share/runtime/globals.hpp
UseG1GCboolgcfalseproduct
Use the Garbage-First garbage collector
share/gc/shared/gc_globals.hpp
UseGCOverheadLimitboolgctrueproduct
Use policy to limit of proportion of time spent in GC 
before an OutOfMemory error is thrown
share/gc/shared/gc_globals.hpp
UseGCTaskAffinityObsoleted in JDK14
Expired in JDK16
boolgcfalseproduct
Use worker affinity when asking for GCTasks
share/gc/shared/gc_globals.hpp
UseGHASHIntrinsicsboolruntimefalsediagnostic
Use intrinsics for GHASH versions of crypto
share/runtime/globals.hpp
UseGlobalValueNumberingboolc1truedevelop
Use Global Value Numbering (separate phase)
share/c1/c1_globals.hpp
UseHeavyMonitorsDeprecated in JDK18
Obsoleted in JDK19
Expired in JDK20
boolruntimefalseproduct
use heavyweight instead of lightweight Java monitors
share/runtime/globals.hpp
UseHugeTLBFSObsoleted in JDK22
Expired in JDK23
boolbsdfalseproduct
Use MAP_HUGETLB for large pages
os/bsd/globals_bsd.hpp
UseHugeTLBFSObsoleted in JDK22
Expired in JDK23
boollinuxfalseproduct
Use MAP_HUGETLB for large pages
os/linux/globals_linux.hpp
UseImplicitStableValuesObsoleted in JDK13
Expired in JDK14
boolc2truediagnostic
Mark well-known stable fields as such (e.g. String.value)
share/opto/c2_globals.hpp
UseIncDecboolx86truediagnostic
Use INC, DEC instructions on x86
cpu/x86/globals_x86.hpp
UseInlineCachesboolruntimetrueproduct
Use Inline Caches for virtual calls
share/runtime/globals.hpp
UseInlineDepthForSpeculativeTypesboolc2truediagnostic
Carry inline depth of profile point with speculative type 
and give priority to profiling from lower inline depth
share/opto/c2_globals.hpp
UseInterpreterboolruntimetrueproduct
Use interpreter for non-compiled methods
share/runtime/globals.hpp
UseJVMCICompilerbooljvmcifalseexperimental
Use JVMCI as the default compiler
share/jvmci/jvmci_globals.hpp
UseJumpTablesboolc2trueproduct
Use JumpTables instead of a binary search tree for switches
share/opto/c2_globals.hpp
UseLSEboolaarch64falseproduct
Use LSE instructions
cpu/aarch64/globals_aarch64.hpp
UseLWPSynchronizationObsoleted in JDK15
Expired in JDK16
boolruntimetrueproduct
Use LWP-based instead of libthread-based synchronization 
(SPARC only)
share/runtime/globals.hpp
UseLargePagesInMetaspaceDeprecated in JDK15
Obsoleted in JDK16
Expired in JDK17
boolruntimefalseproduct
Use large page memory in metaspace. 
Only used if UseLargePages is enabled.
share/runtime/globals.hpp
UseLargePagesIndividualAllocationboolaixfalsedefine_pd_global
os/aix/globals_aix.hpp
UseLargePagesIndividualAllocationboolbsdfalsedefine_pd_global
os/bsd/globals_bsd.hpp
UseLargePagesIndividualAllocationboollinuxfalsedefine_pd_global
os/linux/globals_linux.hpp
UseLargePagesIndividualAllocationboolruntimeproduct_pd
Allocate large pages individually for better affinity
share/runtime/globals.hpp
UseLargePagesIndividualAllocationboolsolarisfalsedefine_pd_global
os/solaris/globals_solaris.hpp
UseLargePagesIndividualAllocationboolwindowstruedefine_pd_global
os/windows/globals_windows.hpp
UseLargePagesboolaixfalsedefine_pd_global
os/aix/globals_aix.hpp
UseLargePagesboolbsdfalsedefine_pd_global
os/bsd/globals_bsd.hpp
UseLargePagesboollinuxfalsedefine_pd_global
os/linux/globals_linux.hpp
UseLargePagesboolruntimeproduct_pd
Use large page memory
share/runtime/globals.hpp
UseLargePagesboolsolaristruedefine_pd_global
os/solaris/globals_solaris.hpp
UseLargePagesboolwindowsfalsedefine_pd_global
os/windows/globals_windows.hpp
UseLegacyJNINameEscapingboolruntimefalseproduct
Use the original JNI name escaping scheme
share/runtime/globals.hpp
UseLibmIntrinsicboolx86truediagnostic
Use Libm Intrinsics
cpu/x86/globals_x86.hpp
UseLinuxPosixThreadCPUClocksboollinuxtrueproduct
enable fast Linux Posix clocks where available
os/linux/globals_linux.hpp
UseLoadInstructionsForStackBangingPPC64boolppcfalseproduct
Use load instructions for stack banging.
cpu/ppc/globals_ppc.hpp
UseLocalValueNumberingboolc1truedevelop
Use Local Value Numbering (embedded in GraphBuilder)
share/c1/c1_globals.hpp
UseLoopCounterboolruntimetrueproduct
Increment invocation counter on backward branch
share/runtime/globals.hpp
UseLoopInvariantCodeMotionboolc1trueproduct
Simple loop invariant code motion for short loops during GVN
share/c1/c1_globals.hpp
UseLoopPredicateboolc2trueproduct
Generate a predicate to select fast/slow loop versions
share/opto/c2_globals.hpp
UseLoopSafepointsboolruntimetruedevelop
Generate Safepoint nodes in every loop
share/runtime/globals.hpp
UseMPMULboolsparcfalseproduct
Use multi-precision multiply instruction (mpmul) on SPARC
cpu/sparc/globals_sparc.hpp
UseMallocOnlyboolruntimefalsedevelop
Use only malloc/free for allocation (no resource area/arena)
share/runtime/globals.hpp
UseMathExactIntrinsicsboolc2truediagnostic
Enables intrinsification of various java.lang.Math functions
share/opto/c2_globals.hpp
UseMaximumCompactionOnSystemGCboolgctrueproduct
Use maximum compaction in the Parallel Old garbage collector 
for a system GC
share/gc/parallel/parallel_globals.hpp
UseMembarDeprecated in JDK10
Obsoleted in JDK12
boolaarch64truedefine_pd_global
cpu/aarch64/globals_aarch64.hpp
UseMembarDeprecated in JDK10
Obsoleted in JDK12
boolarmtruedefine_pd_global
cpu/arm/globals_arm.hpp
UseMembarDeprecated in JDK10
Obsoleted in JDK12
boolruntimeproduct_pd
(Unstable) Issues membars on thread state transitions
share/runtime/globals.hpp
UseMembarDeprecated in JDK10
Obsoleted in JDK12
boolppctruedefine_pd_global
cpu/ppc/globals_ppc.hpp
UseMembarDeprecated in JDK10
Obsoleted in JDK12
bools390truedefine_pd_global
cpu/s390/globals_s390.hpp
UseMembarDeprecated in JDK10
Obsoleted in JDK12
boolsparctruedefine_pd_global
cpu/sparc/globals_sparc.hpp
UseMembarDeprecated in JDK10
Obsoleted in JDK12
boolx86truedefine_pd_global
cpu/x86/globals_x86.hpp
UseMembarDeprecated in JDK10
Obsoleted in JDK12
boolzerotruedefine_pd_global
cpu/zero/globals_zero.hpp
UseMontgomeryMultiplyIntrinsicboolc2falsediagnostic
Enables intrinsification of BigInteger.montgomeryMultiply()
share/opto/c2_globals.hpp
UseMontgomerySquareIntrinsicboolc2falsediagnostic
Enables intrinsification of BigInteger.montgomerySquare()
share/opto/c2_globals.hpp
UseMulAddIntrinsicboolc2falsediagnostic
Enables intrinsification of BigInteger.mulAdd()
share/opto/c2_globals.hpp
UseMultiplyToLenIntrinsicboolc2falsediagnostic
Enables intrinsification of BigInteger.multiplyToLen()
share/opto/c2_globals.hpp
UseNUMAInterleavingboolruntimefalseproduct
Interleave memory across NUMA nodes if available
share/runtime/globals.hpp
UseNUMAboolruntimefalseproduct
Use NUMA if available
share/runtime/globals.hpp
UseNeonObsoleted in JDK23
Expired in JDK24
boolaarch64falseproduct
Use Neon for CRC32 computation
cpu/aarch64/globals_aarch64.hpp
UseNewCode2boolruntimefalsediagnostic
Testing Only: Use the new version while testing
share/runtime/globals.hpp
UseNewCode3boolruntimefalsediagnostic
Testing Only: Use the new version while testing
share/runtime/globals.hpp
UseNewCodeboolruntimefalsediagnostic
Testing Only: Use the new version while testing
share/runtime/globals.hpp
UseNewLongLShiftboolx86falseproduct
Use optimized bitwise shift left
cpu/x86/globals_x86.hpp
UseNiagaraInstrsboolsparcfalseproduct
Use Niagara-efficient instruction subset
cpu/sparc/globals_sparc.hpp
UseOSErrorReportingboolaixfalsedefine_pd_global
os/aix/globals_aix.hpp
UseOSErrorReportingboolbsdfalsedefine_pd_global
os/bsd/globals_bsd.hpp
UseOSErrorReportingboollinuxfalsedefine_pd_global
os/linux/globals_linux.hpp
UseOSErrorReportingboolruntimeproduct_pd
Let VM fatal error propagate to the OS (ie. WER on Windows)
share/runtime/globals.hpp
UseOSErrorReportingboolsolarisfalsedefine_pd_global
os/solaris/globals_solaris.hpp
UseOSErrorReportingboolwindowsfalsedefine_pd_global
// for now.
os/windows/globals_windows.hpp
UseOnStackReplacementboolaarch64truedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
UseOnStackReplacementboolarmtruedefine_pd_global
cpu/arm/c2_globals_arm.hpp
UseOnStackReplacementboolruntimeproduct_pd
Use on stack replacement, calls runtime if invoc. counter 
overflows in loop
share/runtime/globals.hpp
UseOnStackReplacementboolppctruedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
UseOnStackReplacementbools390truedefine_pd_global
cpu/s390/c2_globals_s390.hpp
UseOnStackReplacementboolsparctruedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
UseOnStackReplacementboolx86truedefine_pd_global
cpu/x86/c1_globals_x86.hpp
UseOnlyInlinedBimorphicboolc2trueproduct
Don't use BimorphicInlining if can't inline a second method
share/opto/c2_globals.hpp
UseOprofileObsoleted in JDK16
Expired in JDK17
boolbsdfalseproduct
enable support for Oprofile profiler
os/bsd/globals_bsd.hpp
UseOprofileObsoleted in JDK16
Expired in JDK17
boollinuxfalseproduct
enable support for Oprofile profiler
os/linux/globals_linux.hpp
UseOptoBiasInliningDeprecated in JDK15
Obsoleted in JDK18
Expired in JDK19
boolc2trueproduct
Generate biased locking code in C2 ideal graph
share/opto/c2_globals.hpp
UsePSAdaptiveSurvivorSizePolicyboolgctrueproduct
Use adaptive survivor sizing policies
share/gc/shared/gc_globals.hpp
UseParallelGCboolgcfalseproduct
Use the Parallel Scavenge garbage collector
share/gc/shared/gc_globals.hpp
UseParallelOldGCDeprecated in JDK14
Obsoleted in JDK15
Expired in JDK16
boolgcfalseproduct
Use the Parallel Old garbage collector
share/gc/shared/gc_globals.hpp
UsePerfDataboolruntimetrueproduct
Flag to disable jvmstat instrumentation for performance testing 
and problem isolation purposes
share/runtime/globals.hpp
UsePopCountInstructionboolruntimefalseproduct
Use population count instruction
share/runtime/globals.hpp
UsePower6SchedulerPPC64boolppcfalseproduct
Use Power6 Scheduler.
cpu/ppc/globals_ppc.hpp
UsePrivilegedStackboolruntimetruedevelop
Enable the security JVM functions
share/runtime/globals.hpp
UseProfiledLoopPredicateboolc2trueproduct
move predicates out of loops based on profiling data
share/opto/c2_globals.hpp
UsePthreadsboolruntimefalsedevelop
Use pthread-based instead of libthread-based synchronization 
(SPARC only)
share/runtime/globals.hpp
UseRDPCForConstantTableBaseObsoleted in JDK16
Expired in JDK17
boolc2falseproduct
Use Sparc RDPC instruction for the constant table base.
share/opto/c2_globals.hpp
UseRTMDeoptDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolppcfalseproduct
Perform deopt and recompilation based on RTM abort ratio
cpu/ppc/globals_ppc.hpp
UseRTMDeoptDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolx86falseproduct
Perform deopt and recompilation based on RTM abort ratio
cpu/x86/globals_x86.hpp
UseRTMForStackLocksboolppcfalseexperimental
Enable RTM lock eliding for stack locks in compiled code
cpu/ppc/globals_ppc.hpp
UseRTMForStackLocksboolx86falseexperimental
Enable RTM lock eliding for stack locks in compiled code
cpu/x86/globals_x86.hpp
UseRTMLockingDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolppcfalseproduct
Enable RTM lock eliding for inflated locks in compiled code
cpu/ppc/globals_ppc.hpp
UseRTMLockingDeprecated in JDK23
Obsoleted in JDK24
Expired in JDK25
boolx86falseproduct
Enable RTM lock eliding for inflated locks in compiled code
cpu/x86/globals_x86.hpp
UseRTMXendForLockBusyboolppctrueexperimental
Use RTM Xend instead of Xabort when lock busy
cpu/ppc/globals_ppc.hpp
UseRTMXendForLockBusyboolx86trueexperimental
Use RTM Xend instead of Xabort when lock busy
cpu/x86/globals_x86.hpp
UseRotateAndMaskInstructionsPPC64boolppctrueproduct
Use rotate and mask instructions.
cpu/ppc/globals_ppc.hpp
UseSHA1Intrinsicsboolruntimefalsediagnostic
Use intrinsics for SHA-1 crypto hash function. 
Requires that UseSHA is enabled.
share/runtime/globals.hpp
UseSHA256Intrinsicsboolruntimefalsediagnostic
Use intrinsics for SHA-224 and SHA-256 crypto hash functions. 
Requires that UseSHA is enabled.
share/runtime/globals.hpp
UseSHA512Intrinsicsboolruntimefalsediagnostic
Use intrinsics for SHA-384 and SHA-512 crypto hash functions. 
Requires that UseSHA is enabled.
share/runtime/globals.hpp
UseSHAboolruntimefalseproduct
Control whether SHA instructions are used when available
share/runtime/globals.hpp
UseSHMObsoleted in JDK22
Expired in JDK23
boolbsdfalseproduct
Use SYSV shared memory for large pages
os/bsd/globals_bsd.hpp
UseSHMObsoleted in JDK22
Expired in JDK23
boollinuxfalseproduct
Use SYSV shared memory for large pages
os/linux/globals_linux.hpp
UseSIGTRAPboolppctrueproduct
Allow trap instructions that make use of SIGTRAP. Use this to 
switch off all optimizations requiring SIGTRAP.
cpu/ppc/globals_ppc.hpp
UseSIMDForArrayEqualsboolaarch64trueproduct
Use SIMD instructions in generated array equals code
cpu/aarch64/globals_aarch64.hpp
UseSIMDForMemoryOpsboolaarch64falseproduct
Use SIMD instructions in generated memory move code
cpu/aarch64/globals_aarch64.hpp
UseSSE42Intrinsicsboolx86falseproduct
SSE4.2 versions of intrinsics
cpu/x86/globals_x86.hpp
UseSSEObsoleted in JDK15
Expired in JDK16
intxruntime99
range(0, 99)
product
Highest supported SSE instructions set on x86/x64
share/runtime/globals.hpp
UseSemaphoreGCThreadsSynchronizationObsoleted in JDK16
Expired in JDK17
boolgctruediagnostic
Use semaphore synchronization for the GC Threads, 
instead of synchronization based on mutexes
share/gc/shared/gc_globals.hpp
UseSerialGCboolgcfalseproduct
Use the Serial garbage collector
share/gc/shared/gc_globals.hpp
UseSharedSpacesDeprecated in JDK18
Obsoleted in JDK19
boolruntimetrueproduct
Use shared spaces for metadata
share/runtime/globals.hpp
UseSignalChainingboolruntimetrueproduct
Use signal-chaining to invoke signal handlers installed 
by the application (Solaris & Linux only)
share/runtime/globals.hpp
UseSignumIntrinsicboolruntimefalsediagnostic
Enables intrinsification of Math.signum
share/runtime/globals.hpp
UseSimpleArrayEqualsboolaarch64falseproduct
Use simpliest and shortest implementation for array equals
cpu/aarch64/globals_aarch64.hpp
UseSlowPathboolc1falsedevelop
For debugging: test slow cases by always using them
share/c1/c1_globals.hpp
UseSquareToLenIntrinsicboolc2falsediagnostic
Enables intrinsification of BigInteger.squareToLen()
share/opto/c2_globals.hpp
UseStackBangingboolruntimetruedevelop
use stack banging for stack overflow checks (required for 
proper StackOverflow handling; disable only to measure cost 
of stackbanging)
share/runtime/globals.hpp
UseStaticBranchPredictionForUncommonPathsPPC64boolppcfalseproduct
Use static branch prediction hints for uncommon paths.
cpu/ppc/globals_ppc.hpp
UseStaticBranchPredictionInCompareAndSwapPPC64boolppctrueproduct
Use static branch prediction hints in CAS operations.
cpu/ppc/globals_ppc.hpp
UseStoreImmI16boolx86trueproduct
Use store immediate 16-bits value instruction on x86
cpu/x86/globals_x86.hpp
UseStrictFPboolruntimetruedevelop
use strict fp if modifier strictfp is set
share/runtime/globals.hpp
UseStringDeduplicationboolruntimefalseproduct
Use string deduplication
share/runtime/globals.hpp
UseSubwordForMaxVectorboolc2trueproduct
Use Subword Analysis to set maximum vector size
share/opto/c2_globals.hpp
UseSuperWordboolc2trueproduct
Transform scalar operations into superword operations
share/opto/c2_globals.hpp
UseSwitchProfilingboolruntimetruediagnostic
leverage profiling for table/lookup switch
share/runtime/globals.hpp
UseTLABboolaarch64truedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
UseTLABboolarmtruedefine_pd_global
cpu/arm/c1_globals_arm.hpp
UseTLABboolgcproduct_pd
Use thread-local object allocation
share/gc/shared/gc_globals.hpp
UseTLABboolruntimefalsedefine_pd_global
share/runtime/globals.hpp
UseTLABboolppctruedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
UseTLABbools390truedefine_pd_global
cpu/s390/c2_globals_s390.hpp
UseTLABboolsparctruedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
UseTLABboolx86truedefine_pd_global
cpu/x86/c1_globals_x86.hpp
UseTableRangesboolc1truedevelop
Faster versions of lookup table using ranges
share/c1/c1_globals.hpp
UseThreadPrioritiesboolruntimeproduct_pd
Use native thread priorities
share/runtime/globals.hpp
UseThreadPrioritiesboolsolarisfalsedefine_pd_global
os/solaris/globals_solaris.hpp
UseTransparentHugePagesboollinuxfalseproduct
Use MADV_HUGEPAGE for large pages
os/linux/globals_linux.hpp
UseTypeProfileboolaarch64falsedefine_pd_global
cpu/aarch64/c1_globals_aarch64.hpp
UseTypeProfileboolarmfalsedefine_pd_global
cpu/arm/c1_globals_arm.hpp
UseTypeProfileboolruntimetrueproduct
Check interpreter profile for historically monomorphic calls
share/runtime/globals.hpp
UseTypeProfileboolppcfalsedefine_pd_global
cpu/ppc/c1_globals_ppc.hpp
UseTypeProfilebools390falsedefine_pd_global
cpu/s390/c1_globals_s390.hpp
UseTypeProfileboolsparcfalsedefine_pd_global
cpu/sparc/c1_globals_sparc.hpp
UseTypeProfileboolx86falsedefine_pd_global
cpu/x86/c1_globals_x86.hpp
UseTypeSpeculationboolc2trueproduct
Speculatively propagate types from profiles
share/opto/c2_globals.hpp
UseUnalignedAccessesboolruntimefalsediagnostic
Use unaligned memory accesses in Unsafe
share/runtime/globals.hpp
UseUnalignedLoadStoresboolx86falseproduct
Use SSE2 MOVDQU instruction for Arraycopy
cpu/x86/globals_x86.hpp
UseUniqueSubclassesboolc2truedevelop
Narrow an abstract reference to the unique concrete subclass
share/opto/c2_globals.hpp
UseVISintxsparc99
range(0, 99)
product
Highest supported VIS instructions set on SPARC
cpu/sparc/globals_sparc.hpp
UseVectorCmovboolc2falseproduct
Use Vectorized Cmov
share/opto/c2_globals.hpp
UseVectorizedMismatchIntrinsicboolruntimefalsediagnostic
Enables intrinsification of ArraysSupport.vectorizedMismatch()
share/runtime/globals.hpp
UseXMMForArrayCopyboolruntimefalseproduct
Use SSE2 MOVQ instruction for Arraycopy
share/runtime/globals.hpp
UseXMMForObjInitboolx86falseproduct
Use XMM/YMM MOVDQU instruction for Object Initialization
cpu/x86/globals_x86.hpp
UseXmmI2Dboolx86falseproduct
Use SSE2 CVTDQ2PD instruction to convert Integer to Double
cpu/x86/globals_x86.hpp
UseXmmI2Fboolx86falseproduct
Use SSE2 CVTDQ2PS instruction to convert Integer to Float
cpu/x86/globals_x86.hpp
UseXmmLoadAndClearUpperboolx86trueproduct
Load low part of XMM register and clear upper part
cpu/x86/globals_x86.hpp
UseXmmRegToRegMoveAllboolx86falseproduct
Copy all XMM register bits when moving value between registers
cpu/x86/globals_x86.hpp
UseZGCboolgcfalseexperimental
Use the Z garbage collector
share/gc/shared/gc_globals.hpp
VMThreadHintNoPreemptDeprecated in JDK11
Obsoleted in JDK12
Expired in JDK13
boolruntimefalseproduct
(Solaris only) Give VM thread an extra quanta
share/runtime/globals.hpp
VMThreadPriorityintxruntime-1
range(-1, 127)
product
The native priority at which the VM thread should run 
(-1 means no change)
share/runtime/globals.hpp
VMThreadStackSizeintxaixppc2048define_pd_global
os_cpu/aix_ppc/globals_aix_ppc.hpp
VMThreadStackSizeintxbsdaarch642048define_pd_global
os_cpu/bsd_aarch64/globals_bsd_aarch64.hpp
VMThreadStackSizeintxbsdx86512define_pd_global
os_cpu/bsd_x86/globals_bsd_x86.hpp
VMThreadStackSizeintxbsdzero512define_pd_global
os_cpu/bsd_zero/globals_bsd_zero.hpp
VMThreadStackSizeintxlinuxaarch642048define_pd_global
os_cpu/linux_aarch64/globals_linux_aarch64.hpp
VMThreadStackSizeintxlinuxarm512define_pd_global
os_cpu/linux_arm/globals_linux_arm.hpp
VMThreadStackSizeintxlinuxppc2048define_pd_global
os_cpu/linux_ppc/globals_linux_ppc.hpp
VMThreadStackSizeintxlinuxs3901024define_pd_global
os_cpu/linux_s390/globals_linux_s390.hpp
VMThreadStackSizeintxlinuxx86512define_pd_global
os_cpu/linux_x86/globals_linux_x86.hpp
VMThreadStackSizeintxlinuxzero512define_pd_global
os_cpu/linux_zero/globals_linux_zero.hpp
VMThreadStackSizeintxruntimeproduct_pd
Non-Java Thread Stack Size (in Kbytes)
share/runtime/globals.hpp
VMThreadStackSizeintxsparc1024define_pd_global
cpu/sparc/globals_sparc.hpp
VMThreadStackSizeintxsolarisx86512define_pd_global
os_cpu/solaris_x86/globals_solaris_x86.hpp
VMThreadStackSizeintxwindowsaarch640define_pd_global
os_cpu/windows_aarch64/globals_windows_aarch64.hpp
VMThreadStackSizeintxwindowsx860define_pd_global
// 0 => use system default
os_cpu/windows_x86/globals_windows_x86.hpp
ValueMapInitialSizeintxc111
range(1, NOT_LP64(1*K) LP64_ONLY(32*K))
product
Initial size of a value map
share/c1/c1_globals.hpp
ValueMapMaxLoopSizeintxc18
range(0, 128)
product
maximum size of a loop optimized by global value numbering
share/c1/c1_globals.hpp
ValueSearchLimitintxc21000
range(0, max_jint)
product
Recursion limit in PhaseMacroExpand::value_from_mem_phi
share/opto/c2_globals.hpp
VerboseInternalVMTestsboolgcfalsenotproduct
Turn on logging for internal VM tests.
share/gc/shared/gc_globals.hpp
Verboseboolruntimefalsedevelop
Print additional debugging information from other modes
share/runtime/globals.hpp
VerifyActivationFrameSizeboolruntimefalsedevelop
Verify that activation frame didn't become smaller than its 
minimal size
share/runtime/globals.hpp
VerifyAdapterCallsboolruntimetrueInDebugdiagnostic
Verify that i2c/c2i adapters are called properly
share/runtime/globals.hpp
VerifyAdapterSharingboolruntimefalsedevelop
Verify that the code for shared adapters is the equivalent
share/runtime/globals.hpp
VerifyAfterGCboolgcfalsediagnostic
Verify memory system after GC
share/gc/shared/gc_globals.hpp
VerifyAliasesboolc2falsedevelop
perform extra checks on the results of alias analysis
share/opto/c2_globals.hpp
VerifyBeforeExitboolgctrueInDebugdiagnostic
Verify system before exiting
share/gc/shared/gc_globals.hpp
VerifyBeforeGCboolgcfalsediagnostic
Verify memory system before GC
share/gc/shared/gc_globals.hpp
VerifyBeforeIterationboolruntimefalsediagnostic
Verify memory system before JVMTI iteration
share/runtime/globals.hpp
VerifyBlockOffsetArrayboolgcfalsedevelop
Do (expensive) block offset array verification
share/gc/shared/gc_globals.hpp
VerifyCodeCacheboolruntimefalsenotproduct
Verify code cache on memory allocation/deallocation
share/runtime/globals.hpp
VerifyCompiledCodeboolruntimefalsedevelop
Include miscellaneous runtime verifications in nmethod code; 
default off because it disturbs nmethod size heuristics
share/runtime/globals.hpp
VerifyConnectionGraphboolc2truenotproduct
Verify Connection Graph construction in Escape Analysis
share/opto/c2_globals.hpp
VerifyDUIteratorsboolc2truenotproduct
Verify the safety of all iterations of Bi-directional Edges
share/opto/c2_globals.hpp
VerifyDataPointerboolruntimetrueInDebugdevelop
Verify the method data pointer during interpreter profiling
share/runtime/globals.hpp
VerifyDependenciesboolruntimetrueInDebugdevelop
Exercise and verify the compilation dependency mechanism
share/runtime/globals.hpp
VerifyDuringGCboolgcfalsediagnostic
Verify memory system during GC (between phases)
share/gc/shared/gc_globals.hpp
VerifyDuringStartupboolgcfalsediagnostic
Verify memory system before executing any Java code 
during VM initialization
share/gc/shared/gc_globals.hpp
VerifyFPUboolruntimefalsedevelop
Verify FPU state (check for NaN's, etc.)
share/runtime/globals.hpp
VerifyGCLevelintxgc0
range(0, 1)
diagnostic
Generation level at which to start +VerifyBefore/AfterGC
share/gc/shared/gc_globals.hpp
VerifyGCStartAtuintxgc0
range(0, max_uintx)
diagnostic
GC invoke count where +VerifyBefore/AfterGC kicks in
share/gc/shared/gc_globals.hpp
VerifyGCTypeccstrlistgc
diagnostic
GC type(s) to verify when Verify*GC is enabled.
Available types are collector specific.
share/gc/shared/gc_globals.hpp
VerifyGraphEdgesboolc2falsenotproduct
Verify Bi-directional Edges
share/opto/c2_globals.hpp
VerifyHashTableKeysboolc2truenotproduct
Verify the immutability of keys in the VN hash tables
share/opto/c2_globals.hpp
VerifyIdealNodeCountboolc2falsenotproduct
Verify that tracked dead ideal node count is accurate
share/opto/c2_globals.hpp
VerifyInterpreterStackTopboolarmfalsedevelop
Verify interpreter stack top at every stack expansion (AArch64 only)
cpu/arm/globals_arm.hpp
VerifyIterativeGVNboolc2falsedevelop
Verify Def-Use modifications during sparse Iterative Global 
Value Numbering
share/opto/c2_globals.hpp
VerifyJNIEnvThreadboolruntimefalsenotproduct
Verify JNIEnv.thread == Thread::current() when entering VM 
from JNI
share/runtime/globals.hpp
VerifyJNIFieldsboolruntimetrueInDebugdevelop
Verify jfieldIDs for instance fields
share/runtime/globals.hpp
VerifyLastFrameboolruntimefalsenotproduct
Verify oops on last frame on entry to VM
share/runtime/globals.hpp
VerifyLoopOptimizationsboolc2falsenotproduct
verify major loop optimizations
share/opto/c2_globals.hpp
VerifyMergedCPBytecodesObsoleted in JDK16
Expired in JDK17
boolruntimetrueproduct
Verify bytecodes after RedefineClasses constant pool merging
share/runtime/globals.hpp
VerifyMetaspaceboolruntimefalsedevelop
Verify metaspace on chunk movements.
share/runtime/globals.hpp
VerifyMethodHandlesboolruntimetrueInDebugdiagnostic
perform extra checks when constructing method handles
share/runtime/globals.hpp
VerifyObjectStartArrayboolgctruediagnostic
Verify GC object start array if verify before/after
share/gc/shared/gc_globals.hpp
VerifyOopsboolruntimefalsedevelop
Do plausibility checks for oops
share/runtime/globals.hpp
VerifyOptoOopOffsetsboolc2falsenotproduct
Check types of base addresses in field references
share/opto/c2_globals.hpp
VerifyOptoboolc2falsenotproduct
Apply more time consuming verification during compilation
share/opto/c2_globals.hpp
VerifyRegisterAllocatorboolc2falsenotproduct
Verify Register Allocator
share/opto/c2_globals.hpp
VerifyRememberedSetsboolgcfalsediagnostic
Verify GC remembered sets
share/gc/shared/gc_globals.hpp
VerifySharedSpacesboolruntimefalseproduct
Verify shared spaces (false for default archive, true for 
archive specified by -XX:SharedArchiveFile)
share/runtime/globals.hpp
VerifyStackAtCallsboolruntimefalsedevelop
Verify that the stack pointer is unchanged after calls
share/runtime/globals.hpp
VerifyStackboolruntimefalsedevelop
Verify stack of each thread when it is entering a runtime call
share/runtime/globals.hpp
VerifyStringTableAtExitboolruntimefalsediagnostic
verify StringTable contents at exit
share/runtime/globals.hpp
VerifySubSetccstrlistgc
diagnostic
Memory sub-systems to verify when Verify*GC flag(s) 
are enabled. One or more sub-systems can be specified 
in a comma separated string. Sub-systems are: 
threads, heap, symbol_table, string_table, codecache, 
dictionary, classloader_data_graph, metaspace, jni_handles, 
codecache_oops
share/gc/shared/gc_globals.hpp
VerifyThreadboolruntimefalsedevelop
Watch the thread register for corruption (SPARC only)
share/runtime/globals.hpp
WalkStackALotboolruntimefalsenotproduct
Trace stack (no print) at every exit from the runtime system
share/runtime/globals.hpp
WarmCallMaxSizeintxc2999999
range(0, ((intx)MIN2((int64_t)max_intx,(int64_t)(+1.0e10))))
develop
size of the largest inlinable method
share/opto/c2_globals.hpp
WarmCallMaxWorkintxc2999999
range(0, ((intx)MIN2((int64_t)max_intx,(int64_t)(+1.0e10))))
develop
execution time of the largest inlinable method
share/opto/c2_globals.hpp
WarmCallMinCountintxc2-1
range(-1, ((intx)MIN2((int64_t)max_intx,(int64_t)(+1.0e10))))
develop
number of calls (per method invocation) to enable inlining
share/opto/c2_globals.hpp
WarmCallMinProfitintxc2-1
range(-1, ((intx)MIN2((int64_t)max_intx,(int64_t)(+1.0e10))))
develop
number of calls (per method invocation) to enable inlining
share/opto/c2_globals.hpp
WarnOnStalledSpinLockuintxruntime0notproduct
Print warnings for stalled SpinLocks
share/runtime/globals.hpp
WhiteBoxAPIboolruntimefalsediagnostic
Enable internal testing APIs
share/runtime/globals.hpp
WizardModeboolruntimefalsedevelop
Print much more debugging information
share/runtime/globals.hpp
WorkStealingHardSpinsuintxgc4096experimental
Number of iterations in a spin loop between checks on 
time out of hard spin
share/gc/shared/gc_globals.hpp
WorkStealingSleepMillisuintxgc1experimental
Sleep time when sleep is used for yields
share/gc/shared/gc_globals.hpp
WorkStealingSpinToYieldRatiouintxgc10experimental
Ratio of hard spins to calls to yield
share/gc/shared/gc_globals.hpp
WorkStealingYieldsBeforeSleepuintxgc5000experimental
Number of yields before a sleep is done during work stealing
share/gc/shared/gc_globals.hpp
YoungGenerationSizeIncrementuintxgc20
range(0, 100)
product
Adaptive size percentage change in young generation
share/gc/shared/gc_globals.hpp
YoungGenerationSizeSupplementDecayuintxgc8
range(1, max_uintx)
product
Decay factor to YoungedGenerationSizeSupplement
share/gc/shared/gc_globals.hpp
YoungGenerationSizeSupplementuintxgc80
range(0, 100)
product
Supplement to YoungedGenerationSizeIncrement used at startup
share/gc/shared/gc_globals.hpp
YoungPLABSizesize_tgc4096product
Size of young gen promotion LAB's (in HeapWords)
share/gc/shared/gc_globals.hpp
ZAllocationSpikeTolerancedoublegc2.0product
Allocation spike tolerance factor
share/gc/z/z_globals.hpp
ZCollectionIntervaluintgc0product
Force GC at a fixed time interval (in seconds)
share/gc/z/z_globals.hpp
ZConcurrentJNIWeakGlobalHandlesboolgctruediagnostic
Clean JNI WeakGlobalRefs concurrently
share/gc/z/z_globals.hpp
ZConcurrentStringTableboolgctruediagnostic
Clean StringTable concurrently
share/gc/z/z_globals.hpp
ZConcurrentVMWeakHandlesboolgctruediagnostic
Clean VM WeakHandles concurrently
share/gc/z/z_globals.hpp
ZFragmentationLimitdoublegc25.0product
Maximum allowed heap fragmentation
share/gc/z/z_globals.hpp
ZMarkStacksMaxsize_tgcNOT_LP64(512*M) LP64_ONLY(8*G)
range(32*M, NOT_LP64(512*M) LP64_ONLY(1024*G))
product
Maximum number of bytes allocated for marking stacks
share/gc/z/z_globals.hpp
ZOptimizeLoadBarriersboolgctruediagnostic
Apply load barrier optimizations
share/gc/z/z_globals.hpp
ZPathccstrgcNULLproduct
Filesystem path for Java heap backing storage 
(must be a tmpfs or a hugetlbfs filesystem)
share/gc/z/z_globals.hpp
ZProactiveboolgctruediagnostic
Enable proactive GC cycles
share/gc/z/z_globals.hpp
ZStallOnOutOfMemoryboolgctrueproduct
Allow Java threads to stall and wait for GC to complete 
instead of immediately throwing an OutOfMemoryError
share/gc/z/z_globals.hpp
ZStatisticsForceTraceboolgcfalsediagnostic
Force tracing of ZStats
share/gc/z/z_globals.hpp
ZStatisticsIntervaluintgc10
range(1, (uint)-1)
product
Time between statistics print outs (in seconds)
share/gc/z/z_globals.hpp
ZSymbolTableUnloadingboolgcfalsediagnostic
Unload unused VM symbols
share/gc/z/z_globals.hpp
ZUnmapBadViewsboolgcfalsediagnostic
Unmap bad (inactive) heap views
share/gc/z/z_globals.hpp
ZVerifyForwardingboolgcfalsediagnostic
Verify forwarding tables
share/gc/z/z_globals.hpp
ZVerifyLoadBarriersboolgcfalsedevelop
Verify that reference loads are followed by barriers
share/gc/z/z_globals.hpp
ZVerifyMarkingboolgcfalsediagnostic
Verify marking stacks
share/gc/z/z_globals.hpp
ZWeakRootsboolgctruediagnostic
Treat JNI WeakGlobalRefs and StringTable as weak roots
share/gc/z/z_globals.hpp
ZapEmptyStackFieldsbools390falsedevelop
Write 0x0101... to empty stack
 fields. Use this to ease stack debugging.
cpu/s390/globals_s390.hpp
ZapFillerObjectsboolruntimetrueInDebugdevelop
Zap filler objects
share/runtime/globals.hpp
ZapHighNonSignificantBitsboolarmfalsedevelop
Zap high non-significant bits of values (AArch64 only)
cpu/arm/globals_arm.hpp
ZapMemoryboolppcfalseproduct
Write 0x0101... to empty memory.
 Use this to ease debugging.
cpu/ppc/globals_ppc.hpp
ZapResourceAreaboolruntimetrueInDebugdevelop
Zap freed resource/arena space
share/runtime/globals.hpp
ZapStackSegmentsboolruntimetrueInDebugnotproduct
Zap allocated/freed stack segments
share/runtime/globals.hpp
ZapUnusedHeapAreaboolruntimetrueInDebugdevelop
Zap unused heap space
share/runtime/globals.hpp
ZapVMHandleAreaboolruntimetrueInDebugnotproduct
Zap freed VM handle space
share/runtime/globals.hpp
ZeroTLABboolgcfalseproduct
Zero out the newly created TLAB
share/gc/shared/gc_globals.hpp
ZombieALotIntervalintxruntime5notproduct
Number of exits until ZombieALot kicks in
share/runtime/globals.hpp
ZombieALotboolruntimefalsenotproduct
Create zombies (non-entrant) at exit from the runtime system
share/runtime/globals.hpp
batch
disable background compilation
launcher.properties
bootclasspath/a<dirs/jars>
append to end of bootstrap class path
launcher.properties
check:jni
perform additional checks for JNI functions
launcher.properties
comp
forces compilation of methods on first invocation
launcher.properties
debug
provided for backward compatibility
launcher.properties
diag
show additional diagnostic messages
launcher.properties
future
enable strictest checks, anticipating future default
launcher.properties
hashCodeintxruntime5experimental
(Unstable) select hashCode generation algorithm
share/runtime/globals.hpp
int
interpreted mode execution only
launcher.properties
internalversion
displays more detailed JVM version information than the
-version option
launcher.properties
loggc<file>
log GC status to a file with time stamps
launcher.properties
mixed
mixed mode execution (default)
launcher.properties
mn<size>
sets the initial and maximum size (in bytes) of the heap
for the young generation (nursery)
launcher.properties
ms<size>
set initial Java heap size
launcher.properties
mx<size>
set maximum Java heap size
launcher.properties
noclassgc
disable class garbage collection
launcher.properties
rs
reduce use of OS signals by Java/VM (see documentation)
launcher.properties
share:auto
use shared class data if possible (default)
launcher.properties
share:off
do not attempt to use shared class data
launcher.properties
share:on
require using shared class data, otherwise fail.
launcher.properties
showSettings:all
show all settings and continue
launcher.properties
showSettings:locale
show all locale related settings and continue
launcher.properties
showSettings:properties
show all property settings and continue
launcher.properties
showSettings:system
(Linux Only) show host system or container
configuration and continue
launcher.properties
showSettings:vm
show all vm related settings and continue
launcher.properties
showSettings
show all settings and continue
launcher.properties
ss<size>
set java thread stack size
launcher.properties
verify
sets the mode of the bytecode verifier
launcher.properties