Wednesday, October 23, 2013

Hotspot JVM Options - The complete reference

Last week, I was looking for a complete list of the Java Hotspot JVM options. Problem : the information you may find on the web will mostly be related to -Xmx or -XX:MaxPermSize, and this is typically what I was not looking for :).
I found the Oracle Hotspot page where about 90 options are described, but I was not happy with it for there is more than 600 available options. So I downloaded the source of OpenJDK and extracted the relevant information. Please find here the complete list of every "product" JVM option.
These options are available as of Hotspot JVM 1.7.0_04.

The different types of option

The options listed in this article are extracted from the global configuration file "globals.hpp" of the Hotspot source. This file contains several types of options, among which :
  • product - These options are available in every JVM build
  • diagnostic - These options are available in every JVM build only if the option -XX:+UnlockDiagnosticVMOptions is specified
  • develop - These options are only available in the debug JVM build
  • experimental - These options are only available in the debug JVM build and can be used if the option -XX:+UnlockExperimentalVMOptions is specified

In this article, I will only list the "product" JVM options in alphabetical order.

AdaptivePermSizeWeight

Type : Positive Integer
Default value : 20
Description : Weight for perm gen exponential resizing, between 0 and 100

AdaptiveSizeDecrementScaleFactor

Type : Positive Integer
Default value : 4
Description : Adaptive size scale down factor for shrinking

AdaptiveSizeMajorGCDecayTimeScale

Type : Positive Integer
Default value : 10
Description : Time scale over which major costs decay

AdaptiveSizePausePolicy

Type : Positive Integer
Default value : 0
Description : Policy for changing generation size for pause goals

AdaptiveSizePolicyCollectionCostMargin

Type : Positive Integer
Default value : 50
Description : If collection costs are within margin, reduce both by full delta

AdaptiveSizePolicyInitializingSteps

Type : Positive Integer
Default value : 20
Description : Number of steps where heuristics is used before data is used

AdaptiveSizePolicyOutputInterval

Type : Positive Integer
Default value : 0
Description : Collecton interval for printing information; zero => never

AdaptiveSizePolicyWeight

Type : Positive Integer
Default value : 10
Description : Weight given to exponential resizing, between 0 and 100

AdaptiveSizeThroughPutPolicy

Type : Positive Integer
Default value : 0
Description : Policy for changeing generation size for throughput goals

AdaptiveTimeWeight

Type : Positive Integer
Default value : 25
Description : Weight given to time in adaptive policy, between 0 and 100

AdjustConcurrency

Type : Boolean
Default value : false
Description : call thr_setconcurrency at thread create time to avoid LWP starvation on MP systems (For Solaris Only)

AggressiveOpts

Type : Boolean
Default value : false
Description : Enable aggressive optimizations - see arguments.cpp

AliasLevel

Type : Integer
Default value : 3
Description : 0 for no aliasing, 1 for oop/field/static/array split, 2 for class split, 3 for unique instances

AllocateInstancePrefetchLines

Type : Integer
Default value : 1
Description : Number of lines to prefetch ahead of instance allocation pointer

AllocatePrefetchDistance

Type : Integer
Default value : -1
Description : Distance to prefetch ahead of allocation pointer

AllocatePrefetchInstr

Type : Integer
Default value : 0
Description : Prefetch instruction to prefetch ahead of allocation pointer

AllocatePrefetchLines

Type : Integer
Default value : 3
Description : Number of lines to prefetch ahead of array allocation pointer

AllocatePrefetchStepSize

Type : Integer
Default value : 16
Description : Step size in bytes of sequential prefetch instructions

AllocatePrefetchStyle

Type : Integer
Default value : 1
Description : 0 = no prefetch, 1 = prefetch instructions for each allocation, 2 = use TLAB watermark to gate allocation prefetch, 3 = use BIS instruction on Sparc for allocation prefetch

AllowJNIEnvProxy

Type : Boolean
Default value : false
Description : Allow JNIEnv proxies for jdbx

AllowParallelDefineClass

Type : Boolean
Default value : false
Description : Allow parallel defineClass requests for class loaders registering as parallel capable

AllowUserSignalHandlers

Type : Boolean
Default value : false
Description : Do not complain if the application installs signal handlers (Solaris & Linux only)

AlwaysActAsServerClassMachine

Type : Boolean
Default value : false
Description : Always act like a server-class machine

AlwaysCompileLoopMethods

Type : Boolean
Default value : false
Description : when using recompilation, never interpret methods containing loops

AlwaysInflate

Type : Integer
Default value : 0
Description : (Unstable) Force inflation

AlwaysLockClassLoader

Type : Boolean
Default value : false
Description : Require the VM to acquire the class loader lock before calling loadClass() even for class loaders registering as parallel capable

AlwaysPreTouch

Type : Boolean
Default value : false
Description : It forces all freshly committed pages to be pre-touched.

AlwaysRestoreFPU

Type : Boolean
Default value : false
Description : Restore the FPU control word after every JNI call (expensive)

AlwaysTenure

Type : Boolean
Default value : false
Description : Always tenure objects in eden. (ParallelGC only)

AnonymousClasses

Type : Boolean
Default value : false
Description : support sun.misc.Unsafe.defineAnonymousClass (deprecated)

ArraycopyDstPrefetchDistance

Type : Positive Integer
Default value : 0
Description : Distance to prefetch destination array in arracopy

ArraycopySrcPrefetchDistance

Type : Positive Integer
Default value : 0
Description : Distance to prefetch source array in arracopy

AssertOnSuspendWaitFailure

Type : Boolean
Default value : false
Description : Assert/Guarantee on external suspend wait failure

Atomics

Type : Integer
Default value : 0
Description : (Unsafe,Unstable) Diagnostic - Controls emission of atomics

AutoGCSelectPauseMillis

Type : Positive Integer
Default value : 5000
Description : Automatic GC selection pause threshhold in ms

BCEATraceLevel

Type : Integer
Default value : 0
Description : How much tracing to do of bytecode escape analysis estimates

BaseFootPrintEstimate

Type : Positive Integer
Default value : 256*M
Description : Estimate of footprint other than Java Heap

BiasedLockingBulkRebiasThreshold

Type : Integer
Default value : 20
Description : Threshold of number of revocations per type to try to rebias all objects in the heap of that type

BiasedLockingBulkRevokeThreshold

Type : Integer
Default value : 40
Description : Threshold of number of revocations per type to permanently revoke biases of all objects in the heap of that type

BiasedLockingDecayTime

Type : Integer
Default value : 25000
Description : Decay time (in milliseconds) to re-enable bulk rebiasing of a type after previous bulk rebias

BiasedLockingStartupDelay

Type : Integer
Default value : 4000
Description : Number of milliseconds to wait before enabling biased locking

BindGCTaskThreadsToCPUs

Type : Boolean
Default value : false
Description : Bind GCTaskThreads to CPUs if possible

BlockCopyLowLimit

Type : Integer
Default value : 2048
Description : Minimum size in bytes when block copy will be used

BlockZeroingLowLimit

Type : Integer
Default value : 2048
Description : Minimum size in bytes when block zeroing will be used

BytecodeVerificationLocal

Type : Boolean
Default value : false
Description : Enables the Java bytecode verifier for local classes

BytecodeVerificationRemote

Type : Boolean
Default value : true
Description : Enables the Java bytecode verifier for remote classes

CICompilerCount

Type : Integer
Default value : --depends on your machine architecture--
Description : Number of compiler threads to run

CICompilerCountPerCPU

Type : Boolean
Default value : false
Description : 1 compiler thread for log(N CPUs)

CITime

Type : Boolean
Default value : false
Description : collect timing information for compilation

CMSAbortSemantics

Type : Boolean
Default value : false
Description : Whether abort-on-overflow semantics is implemented

CMSAbortablePrecleanMinWorkPerIteration

Type : Positive Integer
Default value : 100
Description : (Temporary, subject to experimentation) Nominal minimum work per abortable preclean iteration

CMSBitMapYieldQuantum

Type : Positive Integer
Default value : 10*M
Description : Bitmap operations should process at most this many bits between yields

CMSBootstrapOccupancy

Type : Positive Integer
Default value : 50
Description : Percentage CMS generation occupancy at which to initiate CMS collection for bootstrapping collection stats

CMSClassUnloadingEnabled

Type : Boolean
Default value : false
Description : Whether class unloading enabled when using CMS GC

CMSClassUnloadingMaxInterval

Type : Positive Integer
Default value : 0
Description : When CMS class unloading is enabled, the maximum CMS cycle count for which classes may not be unloaded

CMSCleanOnEnter

Type : Boolean
Default value : true
Description : Clean-on-enter optimization for reducing number of dirty cards

CMSCompactWhenClearAllSoftRefs

Type : Boolean
Default value : true
Description : Compact when asked to collect CMS gen with clear_all_soft_refs

CMSConcMarkMultiple

Type : Positive Integer
Default value : 32
Description : Size (in cards) of CMS concurrent MT marking task

CMSConcurrentMTEnabled

Type : Boolean
Default value : true
Description : Whether multi-threaded concurrent work enabled (if ParNewGC)

CMSCoordinatorYieldSleepCount

Type : Positive Integer
Default value : 10
Description : number of times the coordinator GC thread will sleep while yielding before giving up and resuming GC

CMSDumpAtPromotionFailure

Type : Boolean
Default value : false
Description : Dump useful information about the state of the CMS old generation upon a promotion failure.

CMSExpAvgFactor

Type : Positive Integer
Default value : 50
Description : Percentage (0-100) used to weight the current sample when computing exponential averages for CMS statistics.

CMSExtrapolateSweep

Type : Boolean
Default value : false
Description : CMS: cushion for block demand during sweep

CMSFullGCsBeforeCompaction

Type : Positive Integer
Default value : 0
Description : Number of CMS full collection done before compaction if > 0

CMSIncrementalDutyCycle

Type : Positive Integer
Default value : 10
Description : CMS incremental mode duty cycle (a percentage, 0-100). If CMSIncrementalPacing is enabled, then this is just the initial value

CMSIncrementalDutyCycleMin

Type : Positive Integer
Default value : 0
Description : Lower bound on the duty cycle when CMSIncrementalPacing is enabled (a percentage, 0-100)

CMSIncrementalMode

Type : Boolean
Default value : false
Description : Whether CMS GC should operate in incremental\ mode

CMSIncrementalOffset

Type : Positive Integer
Default value : 0
Description : Percentage (0-100) by which the CMS incremental mode duty cycle is shifted to the right within the period between young GCs

CMSIncrementalPacing

Type : Boolean
Default value : true
Description : Whether the CMS incremental mode duty cycle should be automatically adjusted

CMSIncrementalSafetyFactor

Type : Positive Integer
Default value : 10
Description : Percentage (0-100) used to add conservatism when computing the duty cycle

CMSIndexedFreeListReplenish

Type : Positive Integer
Default value : 4
Description : Replenish an indexed free list with this number of chunks

CMSInitiatingOccupancyFraction

Type : Integer
Default value : -1
Description : Percentage CMS generation occupancy to start a CMS collection cycle. A negative value means that CMSTriggerRatio is used

CMSInitiatingPermOccupancyFraction

Type : Integer
Default value : -1
Description : Percentage CMS perm generation occupancy to start a CMScollection cycle. A negative value means that CMSTriggerPermRatio is used

CMSIsTooFullPercentage

Type : Integer
Default value : 98
Description : An absolute ceiling above which CMS will always consider the perm gen ripe for collection

CMSLargeCoalSurplusPercent

Type : Double
Default value : 0.95
Description : CMS: the factor by which to inflate estimated demand of large block sizes to prevent coalescing with an adjoining block

CMSLargeSplitSurplusPercent

Type : Double
Default value : 1.00
Description : CMS: the factor by which to inflate estimated demand of large block sizes to prevent splitting to supply demand for smaller blocks

CMSLoopWarn

Type : Boolean
Default value : false
Description : Warn in case of excessive CMS looping

CMSMaxAbortablePrecleanLoops

Type : Positive Integer
Default value : 0
Description : (Temporary, subject to experimentation) Maximum number of abortable preclean iterations, if > 0

CMSMaxAbortablePrecleanTime

Type : Integer
Default value : 5000
Description : (Temporary, subject to experimentation) Maximum time in abortable preclean in ms

CMSOldPLABMax

Type : Positive Integer
Default value : 1024
Description : Max size of CMS gen promotion lab caches per worker per blksize

CMSOldPLABMin

Type : Positive Integer
Default value : 16
Description : Min size of CMS gen promotion lab caches per worker per blksize

CMSOldPLABNumRefills

Type : Positive Integer
Default value : 4
Description : Nominal number of refills of CMS gen promotion lab cache per worker per block size

CMSOldPLABReactivityCeiling

Type : Positive Integer
Default value : 10
Description : The clamping of the gain in the feedback loop for on-the-fly PLAB resizing during a scavenge

CMSOldPLABReactivityFactor

Type : Positive Integer
Default value : 2
Description : The gain in the feedback loop for on-the-fly PLAB resizing during a scavenge

CMSOldPLABResizeQuicker

Type : Boolean
Default value : false
Description : Whether to react on-the-fly during a scavenge to a sudden change in block demand rate

CMSOldPLABToleranceFactor

Type : Positive Integer
Default value : 4
Description : The tolerance of the phase-change detector for on-the-fly PLAB resizing during a scavenge

CMSPLABRecordAlways

Type : Boolean
Default value : true
Description : Whether to always record survivor space PLAB bdries (effective only if CMSParallelSurvivorRemarkEnabled)

CMSParPromoteBlocksToClaim

Type : Positive Integer
Default value : 16
Description : Number of blocks to attempt to claim when refilling CMS LAB for parallel GC.

CMSParallelRemarkEnabled

Type : Boolean
Default value : true
Description : Whether parallel remark enabled (only if ParNewGC)

CMSParallelSurvivorRemarkEnabled

Type : Boolean
Default value : true
Description : Whether parallel remark of survivor space enabled (effective only if CMSParallelRemarkEnabled)

CMSPermGenPrecleaningEnabled

Type : Boolean
Default value : true
Description : Whether concurrent precleaning enabled in perm gen (effective only when CMSPrecleaningEnabled is true)

CMSPrecleanDenominator

Type : Positive Integer
Default value : 3
Description : CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence ratio

CMSPrecleanIter

Type : Positive Integer
Default value : 3
Description : Maximum number of precleaning iteration passes

CMSPrecleanNumerator

Type : Positive Integer
Default value : 2
Description : CMSPrecleanNumerator:CMSPrecleanDenominator yields convergence ratio

CMSPrecleanRefLists1

Type : Boolean
Default value : true
Description : Preclean ref lists during (initial) preclean phase

CMSPrecleanRefLists2

Type : Boolean
Default value : false
Description : Preclean ref lists during abortable preclean phase

CMSPrecleanSurvivors1

Type : Boolean
Default value : false
Description : Preclean survivors during (initial) preclean phase

CMSPrecleanSurvivors2

Type : Boolean
Default value : true
Description : Preclean survivors during abortable preclean phase

CMSPrecleanThreshold

Type : Positive Integer
Default value : 1000
Description : Don't re-iterate if #dirty cards less than this

CMSPrecleaningEnabled

Type : Boolean
Default value : true
Description : Whether concurrent precleaning enabled

CMSPrintChunksInDump

Type : Boolean
Default value : false
Description : In a dump enabled by CMSDumpAtPromotionFailure, include more detailed information about the free chunks.

CMSPrintObjectsInDump

Type : Boolean
Default value : false
Description : In a dump enabled by CMSDumpAtPromotionFailure, include more detailed information about the allocated objects.

CMSRemarkVerifyVariant

Type : Positive Integer
Default value : 1
Description : Choose variant (1,2) of verification following remark

CMSReplenishIntermediate

Type : Boolean
Default value : true
Description : Replenish all intermediate free-list caches

CMSRescanMultiple

Type : Positive Integer
Default value : 32
Description : Size (in cards) of CMS parallel rescan task

CMSRevisitStackSize

Type : Positive Integer
Default value : 1*M
Description : Size of CMS KlassKlass revisit stack

CMSSamplingGrain

Type : Positive Integer
Default value : 16*K
Description : The minimum distance between eden samples for CMS (see above)

CMSScavengeBeforeRemark

Type : Boolean
Default value : false
Description : Attempt scavenge before the CMS remark step

CMSScheduleRemarkEdenPenetration

Type : Positive Integer
Default value : 50
Description : The Eden occupancy % at which to try and schedule remark pause

CMSScheduleRemarkEdenSizeThreshold

Type : Positive Integer
Default value : 2*M
Description : If Eden used is below this value, don't try to schedule remark

CMSScheduleRemarkSamplingRatio

Type : Positive Integer
Default value : 5
Description : Start sampling Eden top at least before yg occupancy reaches 1/ of the size at which we plan to schedule remark

CMSSmallCoalSurplusPercent

Type : Double
Default value : 1.05
Description : CMS: the factor by which to inflate estimated demand of small block sizes to prevent coalescing with an adjoining block

CMSSmallSplitSurplusPercent

Type : Double
Default value : 1.10
Description : CMS: the factor by which to inflate estimated demand of small block sizes to prevent splitting to supply demand for smaller blocks

CMSSplitIndexedFreeListBlocks

Type : Boolean
Default value : true
Description : When satisfying batched demand, split blocks from the IndexedFreeList whose size is a multiple of requested size

CMSTriggerPermRatio

Type : Integer
Default value : 80
Description : Percentage of MinHeapFreeRatio in the CMS perm generation that is allocated before a CMS collection cycle commences, that also collects the perm generation

CMSTriggerRatio

Type : Integer
Default value : 80
Description : Percentage of MinHeapFreeRatio in CMS generation that is allocated before a CMS collection cycle commences

CMSWorkQueueDrainThreshold

Type : Positive Integer
Default value : 10
Description : Don't drain below this size per parallel worker/thief

CMSYield

Type : Boolean
Default value : true
Description : Yield between steps of concurrent mark & sweep

CMSYieldSleepCount

Type : Positive Integer
Default value : 0
Description : number of times a GC thread (minus the coordinator) will sleep while yielding before giving up and resuming GC

CMS_FLSPadding

Type : Positive Integer
Default value : 1
Description : The multiple of deviation from mean to use for buffering against volatility in free list demand.

CMS_FLSWeight

Type : Positive Integer
Default value : 75
Description : Percentage (0-100) used to weight the current sample when computing exponentially decating averages for CMS FLS statistics.

CMS_SweepPadding

Type : Positive Integer
Default value : 1
Description : The multiple of deviation from mean to use for buffering against volatility in inter-sweep duration.

CMS_SweepTimerThresholdMillis

Type : Positive Integer
Default value : 10
Description : Skip block flux-rate sampling for an epoch unless inter-sweep duration exceeds this threhold in milliseconds

CMS_SweepWeight

Type : Positive Integer
Default value : 75
Description : Percentage (0-100) used to weight the current sample when computing exponentially decaying average for inter-sweep duration

CheckJNICalls

Type : Boolean
Default value : false
Description : Verify all arguments to JNI calls

ClassUnloading

Type : Boolean
Default value : true
Description : Do unloading of classes

ClipInlining

Type : Boolean
Default value : true
Description : clip inlining if aggregate method exceeds DesiredMethodLimit

CodeCacheFlushingMinimumFreeSpace

Type : Positive Integer
Default value : 1500*K
Description : When less than X space left, start code cache cleaning

CodeCacheMinimumFreeSpace

Type : Positive Integer
Default value : 500*K
Description : When less than X space left, we stop compiling.

CollectGen0First

Type : Boolean
Default value : false
Description : Collect youngest generation before each full GC

CompactFields

Type : Boolean
Default value : true
Description : Allocate nonstatic fields in gaps between previous fields

CompilationPolicyChoice

Type : Integer
Default value : 0
Description : which compilation policy (0/1)

CompileCommand

Type : String list (comma separated)
Default value : --empty value--
Description : Prepend to .hotspot_compiler; e.g. log,java/lang/String.

CompileCommandFile

Type : String
Default value : NULL
Description : Read compiler commands from this file [.hotspot_compiler]

CompileOnly

Type : String list (comma separated)
Default value : --empty value--
Description : List of methods (pkg/class.name) to restrict compilation to

CompilerThreadHintNoPreempt

Type : Boolean
Default value : true
Description : (Solaris only) Give compiler threads an extra quanta

CompilerThreadPriority

Type : Integer
Default value : -1
Description : The native priority at which compiler threads should run (-1 means no change)

ConcGCThreads

Type : Positive Integer
Default value : 0
Description : Number of threads concurrent gc will use

ConvertYieldToSleep

Type : Boolean
Default value : false
Description : Converts yield to a sleep of MinSleepInterval to simulate Win32 behavior (SOLARIS only)

CreateMinidumpOnCrash

Type : Boolean
Default value : false
Description : Create minidump on VM fatal error

CriticalJNINatives

Type : Boolean
Default value : true
Description : check for critical JNI entry points

DTraceAllocProbes

Type : Boolean
Default value : false
Description : Enable dtrace probes for object allocation

DTraceMethodProbes

Type : Boolean
Default value : false
Description : Enable dtrace probes for method-entry and method-exit

DTraceMonitorProbes

Type : Boolean
Default value : false
Description : Enable dtrace probes for monitor events

Debugging

Type : Boolean
Default value : false
Description : set when executing debug methods in debug.ccp (to prevent triggering assertions)

DefaultMaxRAMFraction

Type : Positive Integer
Default value : 4
Description : Maximum fraction (1/n) of real memory used for maximum heap size; deprecated: to be renamed to MaxRAMFraction

DefaultThreadPriority

Type : Integer
Default value : -1
Description : The native priority at which threads run if not elsewhere specified (-1 means no change)

DeferPollingPageLoopCount

Type : Integer
Default value : -1
Description : (Unsafe,Unstable) Number of iterations in safepoint loop before changing safepoint polling page to RO

DeferThrSuspendLoopCount

Type : Integer
Default value : 4000
Description : (Unstable) Number of times to iterate in safepoint loop before blocking VM threads

DeoptimizeRandom

Type : Boolean
Default value : false
Description : deoptimize random frames on random exit from the runtime system

DisableAttachMechanism

Type : Boolean
Default value : false
Description : Disable mechanism that allows tools to attach to this VM

DisableExplicitGC

Type : Boolean
Default value : false
Description : Tells whether calling System.gc() does a full GC

DisplayVMOutputToStderr

Type : Boolean
Default value : false
Description : If DisplayVMOutput is true, display all VM output to stderr

DisplayVMOutputToStdout

Type : Boolean
Default value : false
Description : If DisplayVMOutput is true, display all VM output to stdout

DontCompileHugeMethods

Type : Boolean
Default value : true
Description : don't compile methods > HugeMethodLimit

DumpSharedSpaces

Type : Boolean
Default value : false
Description : 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.

EagerXrunInit

Type : Boolean
Default value : false
Description : Eagerly initialize -Xrun libraries; allows startup profiling, but not all -Xrun libraries may support the state of the VM at this time

EmitSync

Type : Integer
Default value : 0
Description : (Unsafe,Unstable) Controls emission of inline sync fast-path code

ErgoHeapSizeLimit

Type : Positive Integer
Default value : 0
Description : Maximum ergonomically set heap size (in bytes); zero means use MaxRAM / MaxRAMFraction

ErrorFile

Type : String
Default value : NULL
Description : If an error occurs, save the error data to this file [default: ./hs_err_pid%p.log] (%p replaced with pid)

ErrorReportServer

Type : String
Default value : NULL
Description : Override built-in error report server address

EstimateArgEscape

Type : Boolean
Default value : true
Description : Analyze bytecodes to estimate escape state of arguments

EventLogLength

Type : Integer
Default value : 2000
Description : maximum nof events in event log

ExplicitGCInvokesConcurrent

Type : Boolean
Default value : false
Description : A System.gc() request invokes a concurrent collection; (effective only when UseConcMarkSweepGC)

ExplicitGCInvokesConcurrentAndUnloadsClasses

Type : Boolean
Default value : false
Description : A System.gc() request invokes a concurrent collection and also unloads classes during such a concurrent gc cycle (effective only when UseConcMarkSweepGC)

ExtendedDTraceProbes

Type : Boolean
Default value : false
Description : Enable performance-impacting dtrace probes

FLSAlwaysCoalesceLarge

Type : Boolean
Default value : false
Description : CMS: Larger free blocks are always available for coalescing

FLSCoalescePolicy

Type : Positive Integer
Default value : 2
Description : CMS: Aggression level for coalescing, increasing from 0 to 4

FLSLargestBlockCoalesceProximity

Type : Double
Default value : 0.99
Description : CMS: the smaller the percentage the greater the coalition force

FailOverToOldVerifier

Type : Boolean
Default value : true
Description : fail over to old verifier when split verifier fails

FastTLABRefill

Type : Boolean
Default value : true
Description : Use fast TLAB refill code

FenceInstruction

Type : Integer
Default value : 0
Description : (Unsafe,Unstable) Experimental

FieldsAllocationStyle

Type : Integer
Default value : 1
Description : 0 - type based with oops first, 1 - with oops last, 2 - oops in super and sub classes are together

FilterSpuriousWakeups

Type : Boolean
Default value : true
Description : Prevent spurious or premature wakeups from object.wait (Solaris only)

ForceNUMA

Type : Boolean
Default value : false
Description : Force NUMA optimizations on single-node/UMA systems

ForceTimeHighResolution

Type : Boolean
Default value : false
Description : Using high time resolution(For Win32 only)

GCDrainStackTargetSize

Type : Positive Integer
Default value : 64
Description : how many entries we'll try to leave on the stack during parallel GC

GCHeapFreeLimit

Type : Positive Integer
Default value : 2
Description : Minimum percentage of free space after a full GC before an OutOfMemoryError is thrown (used with GCTimeLimit)

GCLockerEdenExpansionPercent

Type : Positive Integer
Default value : 5
Description : How much the GC can expand the eden by while the GC locker is active (as a percentage)

GCLockerInvokesConcurrent

Type : Boolean
Default value : false
Description : The exit of a JNI CS necessitating a scavenge also kicks off a bkgrd concurrent collection

GCLogFileSize

Type : Positive Integer
Default value : 0
Description : GC log file size, Default: 0 bytes, no rotation Only valid with UseGCLogFileRotation

GCOverheadReporting

Type : Boolean
Default value : false
Description : Enables the GC overhead reporting facility

GCOverheadReportingPeriodMS

Type : Integer
Default value : 100
Description : Reporting period for conc GC overhead reporting, in ms

GCPauseIntervalMillis

Type : Positive Integer
Default value : 0
Description : Time slice for MMU specification

GCTaskTimeStampEntries

Type : Positive Integer
Default value : 200
Description : Number of time stamp entries per gc worker thread

GCTimeLimit

Type : Positive Integer
Default value : 98
Description : Limit of proportion of time spent in GC before an OutOfMemory error is thrown (used with GCHeapFreeLimit)

GCTimeRatio

Type : Positive Integer
Default value : 99
Description : Adaptive size policy application time to GC time ratio

HPILibPath

Type : String
Default value : NULL
Description : Specify alternate path to HPI library

HeapFirstMaximumCompactionCount

Type : Positive Integer
Default value : 3
Description : The collection count for the first maximum compaction

HeapMaximumCompactionInterval

Type : Positive Integer
Default value : 20
Description : How often should we maximally compact the heap (not allowing any dead space)

HeapSizePerGCThread

Type : Positive Integer
Default value : 64M
Description : Size of heap (bytes) per GC thread used in calculating the number of GC threads

IgnoreUnrecognizedVMOptions

Type : Boolean
Default value : false
Description : Ignore unrecognized VM options

InitialHeapSize

Type : Positive Integer
Default value : 0
Description : Initial heap size (in bytes); zero means OldSize + NewSize

InitialRAMFraction

Type : Positive Integer
Default value : 64
Description : Fraction (1/n) of real memory used for initial heap size

InitialSurvivorRatio

Type : Positive Integer
Default value : 8
Description : Initial ratio of eden/survivor space size

InitialTenuringThreshold

Type : Integer
Default value : 7
Description : Initial value for tenuring threshold

InitiatingHeapOccupancyPercent

Type : Positive Integer
Default value : 45
Description : Percentage of the (entire) heap occupancy to start a concurrent GC cycle. It us used by GCs that trigger a concurrent GC cycle based on the occupancy of the entire heap, not just one of the generations (e.g., G1). A value of 0 denotes 'do constant GC cycles'.

Inline

Type : Boolean
Default value : true
Description : enable inlining

InterpreterProfilePercentage

Type : Integer
Default value : 33
Description : NON_TIERED number of method invocations/branches (expressed as % of CompileThreshold) before profiling in the interpreter

JNIDetachReleasesMonitors

Type : Boolean
Default value : true
Description : JNI DetachCurrentThread releases monitors owned by thread

JavaMonitorsInStackTrace

Type : Boolean
Default value : true
Description : Print info. about Java monitor locks when the stacks are dumped

JavaPriority10_To_OSPriority

Type : Integer
Default value : -1
Description : Map Java priorities to OS priorities

JavaPriority1_To_OSPriority

Type : Integer
Default value : -1
Description : Map Java priorities to OS priorities

JavaPriority2_To_OSPriority

Type : Integer
Default value : -1
Description : Map Java priorities to OS priorities

JavaPriority3_To_OSPriority

Type : Integer
Default value : -1
Description : Map Java priorities to OS priorities

JavaPriority4_To_OSPriority

Type : Integer
Default value : -1
Description : Map Java priorities to OS priorities

JavaPriority5_To_OSPriority

Type : Integer
Default value : -1
Description : Map Java priorities to OS priorities

JavaPriority6_To_OSPriority

Type : Integer
Default value : -1
Description : Map Java priorities to OS priorities

JavaPriority7_To_OSPriority

Type : Integer
Default value : -1
Description : Map Java priorities to OS priorities

JavaPriority8_To_OSPriority

Type : Integer
Default value : -1
Description : Map Java priorities to OS priorities

JavaPriority9_To_OSPriority

Type : Integer
Default value : -1
Description : Map Java priorities to OS priorities

LargePageHeapSizeThreshold

Type : Positive Integer
Default value : 128*M
Description : Use large pages if max heap is at least this big

LargePageSizeInBytes

Type : Positive Integer
Default value : 0
Description : Large page size (0 to let VM choose the page size

LazyBootClassLoader

Type : Boolean
Default value : true
Description : Enable/disable lazy opening of boot class path entries

ManagementServer

Type : Boolean
Default value : false
Description : Create JMX Management Server

MarkStackSize

Type : Positive Integer
Default value : --depends on your machine architecture--
Description : Size of marking stack

MarkStackSizeMax

Type : Positive Integer
Default value : --depends on your machine architecture--
Description : Max size of marking stack

MarkSweepAlwaysCompactCount

Type : Integer
Default value : 4
Description : How often should we fully compact the heap (ignoring the dead space parameters)

MarkSweepDeadRatio

Type : Positive Integer
Default value : 5
Description : Percentage (0-100) of the old gen allowed as dead wood. Serial mark sweep treats this as both the min and max 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 max value when the heap is either completely full or completely empty. Par compact also has a smaller default value; see arguments.cpp.

MaxBCEAEstimateLevel

Type : Integer
Default value : 5
Description : Maximum number of nested calls that are analyzed by BC EA.

MaxBCEAEstimateSize

Type : Integer
Default value : 150
Description : Maximum bytecode size of a method to be analyzed by BC EA.

MaxDirectMemorySize

Type : Integer
Default value : -1
Description : Maximum total size of NIO direct-buffer allocations

MaxFDLimit

Type : Boolean
Default value : true
Description : Bump the number of file descriptors to max in solaris.

MaxGCMinorPauseMillis

Type : Positive Integer
Default value : max_uintx
Description : Adaptive size policy maximum GC minor pause time goal in msec

MaxGCPauseMillis

Type : Positive Integer
Default value : max_uintx
Description : Adaptive size policy maximum GC pause time goal in msec, or (G1 Only) the max. GC time per MMU time slice

MaxHeapFreeRatio

Type : Positive Integer
Default value : 70
Description : Max percentage of heap free after GC to avoid shrinking

MaxHeapSize

Type : Positive Integer
Default value : 96M
Description : Maximum heap size (in bytes)

MaxInlineLevel

Type : Integer
Default value : 9
Description : maximum number of nested calls that are inlined

MaxInlineSize

Type : Integer
Default value : 35
Description : maximum bytecode size of a method to be inlined

MaxJavaStackTraceDepth

Type : Integer
Default value : 1024
Description : Max. no. of lines in the stack trace for Java exceptions (0 means all)

MaxNewSize

Type : Positive Integer
Default value : max_uintx
Description : Maximum new generation size (in bytes), max_uintx means set ergonomically

MaxPermHeapExpansion

Type : Positive Integer
Default value : 4M
Description : Max expansion of permanent heap without full GC (in bytes)

MaxRAMFraction

Type : Positive Integer
Default value : 4
Description : Maximum fraction (1/n) of real memory used for maximum heap size

MaxRecursiveInlineLevel

Type : Integer
Default value : 1
Description : maximum number of nested recursive calls that are inlined

MaxTenuringThreshold

Type : Integer
Default value : 15
Description : Maximum value for tenuring threshold

MaxTrivialSize

Type : Integer
Default value : 6
Description : maximum bytecode size of a trivial method to be inlined

MethodFlushing

Type : Boolean
Default value : true
Description : Reclamation of zombie and not-entrant methods

MinCodeCacheFlushingInterval

Type : Integer
Default value : 30
Description : Min number of seconds between code cache cleaning sessions

MinHeapDeltaBytes

Type : Positive Integer
Default value : 128K
Description : Min change in heap space due to GC (in bytes)

MinHeapFreeRatio

Type : Positive Integer
Default value : 40
Description : Min percentage of heap free after GC to avoid expansion

MinInliningThreshold

Type : Integer
Default value : 250
Description : min. invocation count a method needs to have to be inlined

MinPermHeapExpansion

Type : Positive Integer
Default value : 256K
Description : Min expansion of permanent heap (in bytes)

MinRAMFraction

Type : Positive Integer
Default value : 2
Description : Minimum fraction (1/n) of real memory used for maxmimum heap size on systems with small physical memory size

MinSurvivorRatio

Type : Positive Integer
Default value : 3
Description : Minimum ratio of young generation/survivor space size

MinTLABSize

Type : Positive Integer
Default value : 2*K
Description : Minimum allowed TLAB size (in bytes)

MonitorBound

Type : Integer
Default value : 0
Description : Bound Monitor population

MonitorInUseLists

Type : Boolean
Default value : false
Description : Track Monitors for Deflation

MustCallLoadClassInternal

Type : Boolean
Default value : false
Description : Call loadClassInternal() rather than loadClass()

NUMAChunkResizeWeight

Type : Integer
Default value : 20
Description : Percentage (0-100) used to weight the current sample when computing exponentially decaying average for AdaptiveNUMAChunkSizing

NUMAInterleaveGranularity

Type : Positive Integer
Default value : 2*M
Description : Granularity to use for NUMA interleaving on Windows OS

NUMAPageScanRate

Type : Integer
Default value : 256
Description : Maximum number of pages to include in the page scan procedure

NUMASpaceResizeRate

Type : Integer
Default value : 1*G
Description : Do not reallocate more that this amount per collection

NUMAStats

Type : Boolean
Default value : false
Description : Print NUMA stats in detailed heap information

NativeMonitorSpinLimit

Type : Integer
Default value : 20
Description : (Unstable) ) \ develop(bool, UsePthreads, false, Use pthread-based instead of libthread-based synchronization (SPARC only)

NeverTenure

Type : Boolean
Default value : false
Description : Never tenure objects in eden, May tenure on overflow (ParallelGC only)

NewRatio

Type : Integer
Default value : 2
Description : Ratio of new/old generation sizes

NewSize

Type : Positive Integer
Default value : 1M
Description : Initial new generation size (in bytes)

NmethodSweepCheckInterval

Type : Integer
Default value : 5
Description : Compilers wake up every n seconds to possibly sweep nmethods

NmethodSweepFraction

Type : Integer
Default value : 16
Description : Number of invocations of sweeper to cover all nmethods

NumberOfGCLogFiles

Type : Positive Integer
Default value : 0
Description : Number of gclog files in rotation, Default: 0, no rotation

OldPLABSize

Type : Positive Integer
Default value : 1024
Description : Size of old gen promotion labs (in HeapWords)

OldPLABWeight

Type : Positive Integer
Default value : 50
Description : Percentage (0-100) used to weight the current sample when computing exponentially decaying average for resizing CMSParPromoteBlocksToClaim.

OldSize

Type : Positive Integer
Default value : 4M
Description : Initial tenured generation size (in bytes)

OmitStackTraceInFastThrow

Type : Boolean
Default value : true
Description : Omit backtraces for some 'hot' exceptions in optimized code

OnError

Type : String list (comma separated)
Default value : --empty value--
Description : Run user-defined commands on fatal error; see VMError.cpp for examples

OnOutOfMemoryError

Type : String list (comma separated)
Default value : --empty value--
Description : Run user-defined commands on first java.lang.OutOfMemoryError

PLABWeight

Type : Positive Integer
Default value : 75
Description : Percentage (0-100) used to weight the current sample when computing exponentially decaying average for ResizePLAB.

PSChunkLargeArrays

Type : Boolean
Default value : true
Description : true: process large arrays in chunks

ParGCArrayScanChunk

Type : Integer
Default value : 50
Description : Scan a subset and push remainder, if array is bigger than this

ParGCDesiredObjsFromOverflowList

Type : Positive Integer
Default value : 20
Description : The desired number of objects to claim from the overflow list

ParGCTrimOverflow

Type : Boolean
Default value : true
Description : Eagerly trim the local overflow lists (when ParGCUseLocalOverflow

ParGCUseLocalOverflow

Type : Boolean
Default value : false
Description : Instead of a global overflow list, use local overflow stacks

ParallelGCBufferWastePct

Type : Integer
Default value : 10
Description : wasted fraction of parallel allocation buffer.

ParallelGCThreads

Type : Positive Integer
Default value : 0
Description : Number of parallel threads parallel gc will use

ParallelGCVerbose

Type : Boolean
Default value : false
Description : Verbose output for parallel GC.

ParallelOldDeadWoodLimiterMean

Type : Positive Integer
Default value : 50
Description : The mean used by the par compact dead wood limiter (a number between 0-100).

ParallelOldDeadWoodLimiterStdDev

Type : Positive Integer
Default value : 80
Description : The standard deviation used by the par compact dead wood limiter (a number between 0-100).

ParallelRefProcBalancingEnabled

Type : Boolean
Default value : true
Description : Enable balancing of reference processing queues

ParallelRefProcEnabled

Type : Boolean
Default value : false
Description : Enable parallel reference processing whenever possible

PausePadding

Type : Positive Integer
Default value : 1
Description : How much buffer to keep for pause time

PerBytecodeRecompilationCutoff

Type : Integer
Default value : 200
Description : Per-BCI limit on repeated recompilation (-1=>'Inf')

PerBytecodeTrapLimit

Type : Integer
Default value : 4
Description : Limit on traps (of one kind) at a particular BCI

PerMethodRecompilationCutoff

Type : Integer
Default value : 400
Description : After recompiling N times, stay in the interpreter (-1=>'Inf')

PerMethodTrapLimit

Type : Integer
Default value : 100
Description : Limit on traps (of one kind) in a method (includes inlines)

PerfAllowAtExitRegistration

Type : Boolean
Default value : false
Description : Allow registration of atexit() methods

PerfBypassFileSystemCheck

Type : Boolean
Default value : false
Description : Bypass Win32 file system criteria checks (Windows Only)

PerfDataMemorySize

Type : Integer
Default value : 32*K
Description : Size of performance data memory region. Will be rounded up to a multiple of the native os page size.

PerfDataSamplingInterval

Type : Integer
Default value : 50 /*ms*/
Description : Data sampling interval in milliseconds

PerfDataSaveFile

Type : String
Default value : NULL
Description : Save PerfData memory to the specified absolute pathname, %p in the file name if present will be replaced by pid

PerfDataSaveToFile

Type : Boolean
Default value : false
Description : Save PerfData memory to hsperfdata_ file on exit

PerfDisableSharedMem

Type : Boolean
Default value : false
Description : Store performance data in standard memory

PerfMaxStringConstLength

Type : Integer
Default value : 1024
Description : Maximum PerfStringConstant string length before truncation

PermGenPadding

Type : Positive Integer
Default value : 3
Description : How much buffer to keep for perm gen sizing

PermMarkSweepDeadRatio

Type : Positive Integer
Default value : 20
Description : Percentage (0-100) of the perm gen allowed as dead wood. See MarkSweepDeadRatio for collector-specific comments.

PostSpinYield

Type : Boolean
Default value : true
Description : Yield after inner spinning loop

PreBlockSpin

Type : Integer
Default value : 10
Description : Number of times to spin in an inflated lock before going to an OS lock

PreSpinYield

Type : Boolean
Default value : false
Description : Yield before inner spinning loop

PrefetchCopyIntervalInBytes

Type : Integer
Default value : -1
Description : How far ahead to prefetch destination area (<= 0 means off)

PrefetchFieldsAhead

Type : Integer
Default value : -1
Description : How many fields ahead to prefetch in oop scan (<= 0 means off)

PrefetchScanIntervalInBytes

Type : Integer
Default value : -1
Description : How far ahead to prefetch scan area (<= 0 means off)

PreserveAllAnnotations

Type : Boolean
Default value : false
Description : Preserve RuntimeInvisibleAnnotations as well as RuntimeVisibleAnnotations

PreserveMarkStackSize

Type : Positive Integer
Default value : 1024
Description : Size for stack used in promotion failure handling

PretenureSizeThreshold

Type : Positive Integer
Default value : 0
Description : Maximum size in bytes of objects allocated in DefNew generation; zero means no maximum

PrintAdaptiveSizePolicy

Type : Boolean
Default value : false
Description : Print information about AdaptiveSizePolicy

PrintCMSInitiationStatistics

Type : Boolean
Default value : false
Description : Statistics for initiating a CMS collection

PrintCMSStatistics

Type : Integer
Default value : 0
Description : Statistics for CMS

PrintCommandLineFlags

Type : Boolean
Default value : false
Description : Print flags specified on command line or set by ergonomics

PrintCompilation

Type : Boolean
Default value : false
Description : Print compilations

PrintFLSCensus

Type : Integer
Default value : 0
Description : Census for CMS' FreeListSpace

PrintFLSStatistics

Type : Integer
Default value : 0
Description : Statistics for CMS' FreeListSpace

PrintFlagsFinal

Type : Boolean
Default value : false
Description : Print all VM flags after argument and ergonomic processing

PrintFlagsInitial

Type : Boolean
Default value : false
Description : Print all VM flags before argument processing and exit VM

PrintGCApplicationConcurrentTime

Type : Boolean
Default value : false
Description : Print the time the application has been running

PrintGCApplicationStoppedTime

Type : Boolean
Default value : false
Description : Print the time the application has been stopped

PrintGCTaskTimeStamps

Type : Boolean
Default value : false
Description : Print timestamps for individual gc worker thread tasks

PrintHeapAtSIGBREAK

Type : Boolean
Default value : true
Description : Print heap layout in response to SIGBREAK

PrintJNIGCStalls

Type : Boolean
Default value : false
Description : Print diagnostic message when GC is stalled by JNI critical section

PrintJNIResolving

Type : Boolean
Default value : false
Description : Used to implement -v:jni

PrintOldPLAB

Type : Boolean
Default value : false
Description : Print (old gen) promotion labs sizing decisions

PrintOopAddress

Type : Boolean
Default value : false
Description : Always print the location of the oop

PrintPLAB

Type : Boolean
Default value : false
Description : Print (survivor space) promotion labs sizing decisions

PrintParallelOldGCPhaseTimes

Type : Boolean
Default value : false
Description : Print the time taken by each parallel old gc phase. PrintGCDetails must also be enabled.

PrintPromotionFailure

Type : Boolean
Default value : false
Description : Print additional diagnostic information following promotion failure

PrintReferenceGC

Type : Boolean
Default value : false
Description : Print times spent handling reference objects during GC (enabled only when PrintGCDetails)

PrintRevisitStats

Type : Boolean
Default value : false
Description : Print revisit (klass and MDO) stack related information

PrintSafepointStatistics

Type : Boolean
Default value : false
Description : print statistics about safepoint synchronization

PrintSafepointStatisticsCount

Type : Integer
Default value : 300
Description : total number of safepoint statistics collected before printing them out

PrintSafepointStatisticsTimeout

Type : Integer
Default value : -1
Description : print safepoint statistics only when safepoint takes more than PrintSafepointSatisticsTimeout in millis

PrintSharedSpaces

Type : Boolean
Default value : false
Description : Print usage of shared spaces

PrintTLAB

Type : Boolean
Default value : false
Description : Print various TLAB related information

PrintTenuringDistribution

Type : Boolean
Default value : false
Description : Print tenuring age information

PrintTieredEvents

Type : Boolean
Default value : false
Description : Print tiered events notifications

PrintVMOptions

Type : Boolean
Default value : false
Description : Print flags that appeared on the command line

PrintVMQWaitTime

Type : Boolean
Default value : false
Description : Prints out the waiting time in VM operation queue

PrintWarnings

Type : Boolean
Default value : true
Description : Prints JVM warnings to output stream

ProcessDistributionStride

Type : Positive Integer
Default value : 4
Description : Stride through processors when distributing processes

ProfileIntervals

Type : Boolean
Default value : false
Description : Prints profiles for each interval (see ProfileIntervalsTicks)

ProfileIntervalsTicks

Type : Integer
Default value : 100
Description : # of ticks between printing of interval profile (+ProfileIntervals)

ProfileMaturityPercentage

Type : Integer
Default value : 20
Description : number of method invocations/branches (expressed as % of CompileThreshold) before using the method's profile

ProfileVM

Type : Boolean
Default value : false
Description : Profiles ticks that fall within VM (either in the VM Thread or VM code called through stubs)

ProfilerPrintByteCodeStatistics

Type : Boolean
Default value : false
Description : Prints byte code statictics when dumping profiler output

ProfilerRecordPC

Type : Boolean
Default value : false
Description : Collects tick for each 16 byte interval of compiled code

PromotedPadding

Type : Positive Integer
Default value : 3
Description : How much buffer to keep for promotion failure

QueuedAllocationWarningCount

Type : Integer
Default value : 0
Description : Number of times an allocation that queues behind a GC will retry before printing a warning

RangeCheckElimination

Type : Boolean
Default value : true
Description : Split loop iterations to eliminate range checks

ReadPrefetchInstr

Type : Integer
Default value : 0
Description : Prefetch instruction to prefetch ahead

ReadSpinIterations

Type : Integer
Default value : 100
Description : Number of read attempts before a yield (spin inner loop)

ReduceSignalUsage

Type : Boolean
Default value : false
Description : Reduce the use of OS signals in Java and/or the VM

RefDiscoveryPolicy

Type : Integer
Default value : 0
Description : Whether reference-based(0) or referent-based(1)

ReflectionWrapResolutionErrors

Type : Boolean
Default value : true
Description : Temporary flag for transition to AbstractMethodError wrapped in InvocationTargetException. See 6531596

RegisterFinalizersAtInit

Type : Boolean
Default value : true
Description : Register finalizable objects at end of Object. or after allocation

RelaxAccessControlCheck

Type : Boolean
Default value : false
Description : Relax the access control checks in the verifier

RequireSharedSpaces

Type : Boolean
Default value : false
Description : Require shared spaces in the permanent generation

ResizeOldPLAB

Type : Boolean
Default value : true
Description : Dynamically resize (old gen) promotion labs

ResizePLAB

Type : Boolean
Default value : true
Description : Dynamically resize (survivor space) promotion labs

RestoreMXCSROnJNICalls

Type : Boolean
Default value : false
Description : Restore MXCSR when returning from JNI calls

SafepointSpinBeforeYield

Type : Integer
Default value : 2000
Description : (Unstable)

SafepointTimeout

Type : Boolean
Default value : false
Description : Time out and warn or fail after SafepointTimeoutDelay milliseconds if failed to reach safepoint

SafepointTimeoutDelay

Type : Integer
Default value : 10000
Description : Delay in milliseconds for option SafepointTimeout

ScavengeBeforeFullGC

Type : Boolean
Default value : true
Description : Scavenge youngest generation before each full GC, used with UseParallelGC

SelfDestructTimer

Type : Integer
Default value : 0
Description : Will cause VM to terminate after a given time (in minutes) (0 means off)

SharedDummyBlockSize

Type : Positive Integer
Default value : 512*M
Description : Size of dummy block used to shift heap addresses (in bytes)

SharedMiscCodeSize

Type : Positive Integer
Default value : 4*M
Description : Size of the shared code area adjacent to the heap (in bytes)

SharedMiscDataSize

Type : Positive Integer
Default value : --depends on your machine architecture--
Description : Size of the shared data area adjacent to the heap (in bytes)

SharedReadOnlySize

Type : Positive Integer
Default value : 10*M
Description : Size of read-only space in permanent generation (in bytes)

SharedReadWriteSize

Type : Positive Integer
Default value : --depends on your machine architecture--
Description : Size of read-write space in permanent generation (in bytes)

ShowMessageBoxOnError

Type : Boolean
Default value : false
Description : Keep process alive on VM fatal error

SoftRefLRUPolicyMSPerMB

Type : Integer
Default value : 1000
Description : Number of milliseconds per MB of free space in the heap

SplitIfBlocks

Type : Boolean
Default value : true
Description : Clone compares and control flow through merge points to fold some branches

StackTraceInThrowable

Type : Boolean
Default value : true
Description : Collect backtrace in throwable when exception happens

StartAttachListener

Type : Boolean
Default value : false
Description : Always start Attach Listener at VM startup

StarvationMonitorInterval

Type : Integer
Default value : 200
Description : Pause between each check in ms

StressLdcRewrite

Type : Boolean
Default value : false
Description : Force ldc -> ldc_w rewrite during RedefineClasses

StressTieredRuntime

Type : Boolean
Default value : false
Description : Alternate client and server compiler on compile requests

StringTableSize

Type : Positive Integer
Default value : 1009
Description : Number of buckets in the interned String table

SuppressFatalErrorMessage

Type : Boolean
Default value : false
Description : Do NO Fatal Error report [Avoid deadlock]

SurvivorPadding

Type : Positive Integer
Default value : 3
Description : How much buffer to keep for survivor overflow

SurvivorRatio

Type : Integer
Default value : 8
Description : Ratio of eden/survivor space size

SuspendRetryCount

Type : Integer
Default value : 50
Description : Maximum retry count for an external suspend request

SuspendRetryDelay

Type : Integer
Default value : 5
Description : Milliseconds to delay per retry (* current_retry_count)

SyncKnobs

Type : String
Default value : NULL
Description : (Unstable) Various monitor synchronization tunables

TLABAllocationWeight

Type : Positive Integer
Default value : 35
Description : Allocation averaging weight

TLABRefillWasteFraction

Type : Positive Integer
Default value : 64
Description : Max TLAB waste at a refill (internal fragmentation)

TLABSize

Type : Positive Integer
Default value : 0
Description : Starting TLAB size (in bytes); zero means set ergonomically

TLABStats

Type : Boolean
Default value : true
Description : Print various TLAB related information

TLABWasteIncrement

Type : Positive Integer
Default value : 4
Description : Increment allowed waste at slow allocation

TLABWasteTargetPercent

Type : Positive Integer
Default value : 1
Description : Percentage of Eden that can be wasted

TargetPLABWastePct

Type : Integer
Default value : 10
Description : target wasted space in last buffer as pct of overall allocation

TargetSurvivorRatio

Type : Integer
Default value : 50
Description : Desired percentage of survivor space used after scavenge

TenuredGenerationSizeIncrement

Type : Positive Integer
Default value : 20
Description : Adaptive size percentage change in tenured generation

TenuredGenerationSizeSupplement

Type : Positive Integer
Default value : 80
Description : Supplement to TenuredGenerationSizeIncrement used at startup

TenuredGenerationSizeSupplementDecay

Type : Positive Integer
Default value : 2
Description : Decay factor to TenuredGenerationSizeIncrement

ThreadPriorityPolicy

Type : Integer
Default value : 0
Description : 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 this policy requires root privilege.

ThreadPriorityVerbose

Type : Boolean
Default value : false
Description : Print priority changes

ThreadSafetyMargin

Type : Positive Integer
Default value : 50*M
Description : Thread safety margin is used on fixed-stack LinuxThreads (on Linux/x86 only) to prevent heap-stack collision. Set to 0 to disable this feature

ThresholdTolerance

Type : Positive Integer
Default value : 10
Description : Allowed collection cost difference between generations

Tier0BackedgeNotifyFreqLog

Type : Integer
Default value : 10
Description : Interpreter (tier 0) invocation notification frequency.

Tier0InvokeNotifyFreqLog

Type : Integer
Default value : 7
Description : Interpreter (tier 0) invocation notification frequency.

Tier0ProfilingStartPercentage

Type : Integer
Default value : 200
Description : Start profiling in interpreter if the counters exceed tier 3 thresholds by the specified percentage

Tier23InlineeNotifyFreqLog

Type : Integer
Default value : 20
Description : Inlinee invocation (tiers 2 and 3) notification frequency

Tier2BackEdgeThreshold

Type : Integer
Default value : 0
Description : Back edge threshold at which tier 2 compilation is invoked

Tier2BackedgeNotifyFreqLog

Type : Integer
Default value : 14
Description : C1 without MDO (tier 2) invocation notification frequency.

Tier2CompileThreshold

Type : Integer
Default value : 0
Description : threshold at which tier 2 compilation is invoked

Tier2InvokeNotifyFreqLog

Type : Integer
Default value : 11
Description : C1 without MDO (tier 2) invocation notification frequency.

Tier3BackEdgeThreshold

Type : Integer
Default value : 60000
Description : Back edge threshold at which tier 3 OSR compilation is invoked

Tier3BackedgeNotifyFreqLog

Type : Integer
Default value : 13
Description : C1 with MDO profiling (tier 3) invocation notification frequency.

Tier3CompileThreshold

Type : Integer
Default value : 2000
Description : Threshold at which tier 3 compilation is invoked (invocation minimum must be satisfied.

Tier3DelayOff

Type : Integer
Default value : 2
Description : If C2 queue size is less than this amount per compiler thread allow methods compiled at tier 2 transition to tier 3

Tier3DelayOn

Type : Integer
Default value : 5
Description : If C2 queue size grows over this amount per compiler thread stop compiling at tier 3 and start compiling at tier 2

Tier3InvocationThreshold

Type : Integer
Default value : 200
Description : Compile if number of method invocations crosses this threshold

Tier3InvokeNotifyFreqLog

Type : Integer
Default value : 10
Description : C1 with MDO profiling (tier 3) invocation notification frequency.

Tier3LoadFeedback

Type : Integer
Default value : 5
Description : Tier 3 thresholds will increase twofold when C1 queue size reaches this amount per compiler thread

Tier3MinInvocationThreshold

Type : Integer
Default value : 100
Description : Minimum invocation to compile at tier 3

Tier4BackEdgeThreshold

Type : Integer
Default value : 40000
Description : Back edge threshold at which tier 4 OSR compilation is invoked

Tier4CompileThreshold

Type : Integer
Default value : 15000
Description : Threshold at which tier 4 compilation is invoked (invocation minimum must be satisfied.

Tier4InvocationThreshold

Type : Integer
Default value : 5000
Description : Compile if number of method invocations crosses this threshold

Tier4LoadFeedback

Type : Integer
Default value : 3
Description : Tier 4 thresholds will increase twofold when C2 queue size reaches this amount per compiler thread

Tier4MinInvocationThreshold

Type : Integer
Default value : 600
Description : Minimum invocation to compile at tier 4

TieredCompileTaskTimeout

Type : Integer
Default value : 50
Description : Kill compile task if method was not used within given timeout in milliseconds

TieredRateUpdateMaxTime

Type : Integer
Default value : 25
Description : Maximum rate sampling interval (in milliseconds)

TieredRateUpdateMinTime

Type : Integer
Default value : 1
Description : Minimum rate sampling interval (in milliseconds)

TieredStopAtLevel

Type : Integer
Default value : 4
Description : Stop at given compilation level

TraceBiasedLocking

Type : Boolean
Default value : false
Description : Trace biased locking in JVM

TraceClassLoadingPreorder

Type : Boolean
Default value : false
Description : Trace all classes loaded in order referenced (not loaded)

TraceClassResolution

Type : Boolean
Default value : false
Description : Trace all constant pool resolutions (for debugging)

TraceDynamicGCThreads

Type : Boolean
Default value : false
Description : Trace the dynamic GC thread usage

TraceGen0Time

Type : Boolean
Default value : false
Description : Trace accumulated time for Gen 0 collection

TraceGen1Time

Type : Boolean
Default value : false
Description : Trace accumulated time for Gen 1 collection

TraceJVMTI

Type : String
Default value : NULL
Description : Trace flags for JVMTI functions and events

TraceMonitorInflation

Type : Boolean
Default value : false
Description : Trace monitor inflation in JVM

TraceParallelOldGCTasks

Type : Boolean
Default value : false
Description : Trace multithreaded GC activity

TraceRedefineClasses

Type : Integer
Default value : 0
Description : Trace level for JVMTI RedefineClasses

TraceSafepointCleanupTime

Type : Boolean
Default value : false
Description : print the break down of clean up tasks performed during safepoint

TraceSuspendWaitFailures

Type : Boolean
Default value : false
Description : Trace external suspend wait failures

TransmitErrorReport

Type : Boolean
Default value : false
Description : Enable error report transmission on erroneous termination

TypeProfileMajorReceiverPercent

Type : Integer
Default value : 90
Description : % of major receiver type to all profiled receivers

TypeProfileWidth

Type : Integer
Default value : 2
Description : number of receiver types to record in call/cast profile

UnguardOnExecutionViolation

Type : Integer
Default value : 0
Description : Unguard page and retry on no-execute fault (Win32 only) 0=off, 1=conservative, 2=aggressive

UnlinkSymbolsALot

Type : Boolean
Default value : false
Description : unlink unreferenced symbols from the symbol table at safepoints

Use486InstrsOnly

Type : Boolean
Default value : false
Description : Use 80486 Compliant instruction subset

UseAVX

Type : Integer
Default value : 99
Description : Highest supported AVX instructions set on x86/x64

UseAdaptiveGCBoundary

Type : Boolean
Default value : false
Description : Allow young-old boundary to move

UseAdaptiveGenerationSizePolicyAtMajorCollection

Type : Boolean
Default value : true
Description : Use adaptive young-old sizing policies at major collections

UseAdaptiveGenerationSizePolicyAtMinorCollection

Type : Boolean
Default value : true
Description : Use adaptive young-old sizing policies at minor collections

UseAdaptiveNUMAChunkSizing

Type : Boolean
Default value : true
Description : Enable adaptive chunk sizing for NUMA

UseAdaptiveSizeDecayMajorGCCost

Type : Boolean
Default value : true
Description : Adaptive size decays the major cost for long major intervals

UseAdaptiveSizePolicy

Type : Boolean
Default value : true
Description : Use adaptive generation sizing policies

UseAdaptiveSizePolicyFootprintGoal

Type : Boolean
Default value : true
Description : Use adaptive minimum footprint as a goal

UseAdaptiveSizePolicyWithSystemGC

Type : Boolean
Default value : false
Description : Use statistics from System.GC for adaptive size policy

UseAddressNop

Type : Boolean
Default value : false
Description : Use '0F 1F [addr]' NOP instructions on x86 cpus

UseAltSigs

Type : Boolean
Default value : false
Description : Use alternate signals instead of SIGUSR1 & SIGUSR2 for VM internal signals (Solaris only)

UseAutoGCSelectPolicy

Type : Boolean
Default value : false
Description : Use automatic collection selection policy

UseBiasedLocking

Type : Boolean
Default value : true
Description : Enable biased locking in JVM

UseBlockCopy

Type : Boolean
Default value : false
Description : Use special cpu instructions for block copy

UseBlockZeroing

Type : Boolean
Default value : false
Description : Use special cpu instructions for block zeroing

UseBoundThreads

Type : Boolean
Default value : true
Description : Bind user level threads to kernel threads (for SOLARIS only)

UseCBCond

Type : Boolean
Default value : false
Description : Use compare and branch instruction on SPARC

UseCMSBestFit

Type : Boolean
Default value : true
Description : Use CMS best fit allocation strategy

UseCMSCollectionPassing

Type : Boolean
Default value : true
Description : Use passing of collection from background to foreground

UseCMSCompactAtFullCollection

Type : Boolean
Default value : true
Description : Use mark sweep compact at full collections

UseCMSInitiatingOccupancyOnly

Type : Boolean
Default value : false
Description : Only use occupancy as a crierion for starting a CMS collection

UseCodeCacheFlushing

Type : Boolean
Default value : true
Description : Attempt to clean the code cache before shutting off compiler

UseCompiler

Type : Boolean
Default value : true
Description : use compilation

UseCompilerSafepoints

Type : Boolean
Default value : true
Description : Stop at safepoints in compiled code

UseConcMarkSweepGC

Type : Boolean
Default value : false
Description : Use Concurrent Mark-Sweep GC in the old generation

UseCondCardMark

Type : Boolean
Default value : false
Description : Check for already marked card before updating card table

UseCountLeadingZerosInstruction

Type : Boolean
Default value : false
Description : Use count leading zeros instruction

UseCounterDecay

Type : Boolean
Default value : true
Description : adjust recompilation counters

UseDynamicNumberOfGCThreads

Type : Boolean
Default value : false
Description : Dynamically choose the number of parallel threads parallel gc will use

UseFastAccessorMethods

Type : Boolean
Default value : true
Description : Use fast method entry code for accessor methods

UseFastEmptyMethods

Type : Boolean
Default value : true
Description : Use fast method entry code for empty methods

UseFastJNIAccessors

Type : Boolean
Default value : true
Description : Use optimized versions of GetField

UseG1GC

Type : Boolean
Default value : false
Description : Use the Garbage-First garbage collector

UseGCLogFileRotation

Type : Boolean
Default value : false
Description : Prevent large gclog file for long running app. Requires -Xloggc:

UseGCOverheadLimit

Type : Boolean
Default value : true
Description : Use policy to limit of proportion of time spent in GC before an OutOfMemory error is thrown

UseGCTaskAffinity

Type : Boolean
Default value : false
Description : Use worker affinity when asking for GCTasks

UseHeavyMonitors

Type : Boolean
Default value : false
Description : use heavyweight instead of lightweight Java monitors

UseInlineCaches

Type : Boolean
Default value : true
Description : Use Inline Caches for virtual calls

UseInterpreter

Type : Boolean
Default value : true
Description : Use interpreter for non-compiled methods

UseLWPSynchronization

Type : Boolean
Default value : true
Description : Use LWP-based instead of libthread-based synchronization (SPARC only)

UseLoopCounter

Type : Boolean
Default value : true
Description : Increment invocation counter on backward branch

UseMaximumCompactionOnSystemGC

Type : Boolean
Default value : true
Description : In the Parallel Old garbage collector maximum compaction for a system GC

UseNUMA

Type : Boolean
Default value : false
Description : Use NUMA if available

UseNUMAInterleaving

Type : Boolean
Default value : false
Description : Interleave memory across NUMA nodes if available

UseNewLongLShift

Type : Boolean
Default value : false
Description : Use optimized bitwise shift left

UseNiagaraInstrs

Type : Boolean
Default value : false
Description : Use Niagara-efficient instruction subset

UsePPCLWSYNC

Type : Boolean
Default value : true
Description : Use lwsync instruction if true, else use slower sync

UsePSAdaptiveSurvivorSizePolicy

Type : Boolean
Default value : true
Description : Use adaptive survivor sizing policies

UseParNewGC

Type : Boolean
Default value : false
Description : Use parallel threads in the new generation.

UseParallelGC

Type : Boolean
Default value : false
Description : Use the Parallel Scavenge garbage collector

UseParallelOldGC

Type : Boolean
Default value : false
Description : Use the Parallel Old garbage collector

UsePerfData

Type : Boolean
Default value : falseInEmbedded
Description : Flag to disable jvmstat instrumentation for performance testing and problem isolation purposes.

UsePopCountInstruction

Type : Boolean
Default value : false
Description : Use population count instruction

UseSSE42Intrinsics

Type : Boolean
Default value : false
Description : SSE4.2 versions of intrinsics

UseSSE

Type : Integer
Default value : 99
Description : Highest supported SSE instructions set on x86/x64

UseSerialGC

Type : Boolean
Default value : false
Description : Use the serial garbage collector

UseSharedSpaces

Type : Boolean
Default value : true
Description : Use shared spaces in the permanent generation

UseSignalChaining

Type : Boolean
Default value : true
Description : Use signal-chaining to invoke signal handlers installed by the application (Solaris & Linux only)

UseSpinning

Type : Boolean
Default value : false
Description : Use spinning in monitor inflation and before entry

UseSplitVerifier

Type : Boolean
Default value : true
Description : use split verifier with StackMapTable attributes

UseStoreImmI16

Type : Boolean
Default value : true
Description : Use store immediate 16-bits value instruction on x86

UseStringCache

Type : Boolean
Default value : false
Description : Enable String cache capabilities on String.java

UseTypeProfile

Type : Boolean
Default value : true
Description : Check interpreter profile for historically monomorphic calls

UseUnalignedLoadStores

Type : Boolean
Default value : false
Description : Use SSE2 MOVDQU instruction for Arraycopy

UseVIS

Type : Integer
Default value : 99
Description : Highest supported VIS instructions set on Sparc

UseVMInterruptibleIO

Type : Boolean
Default value : false
Description : (Unstable, Solaris-specific) Thread interrupt before or with EINTR for I/O operations results in OS_INTRPT. The default value of this flag is true for JDK 6 and earlier

UseXMMForArrayCopy

Type : Boolean
Default value : false
Description : Use SSE2 MOVQ instruction for Arraycopy

UseXmmI2D

Type : Boolean
Default value : false
Description : Use SSE2 CVTDQ2PD instruction to convert Integer to Double

UseXmmI2F

Type : Boolean
Default value : false
Description : Use SSE2 CVTDQ2PS instruction to convert Integer to Float

UseXmmLoadAndClearUpper

Type : Boolean
Default value : true
Description : Load low part of XMM register and clear upper part

UseXmmRegToRegMoveAll

Type : Boolean
Default value : false
Description : Copy all XMM register bits when moving value between registers

VMThreadHintNoPreempt

Type : Boolean
Default value : false
Description : (Solaris only) Give VM thread an extra quanta

VMThreadPriority

Type : Integer
Default value : -1
Description : The native priority at which the VM thread should run (-1 means no change)

VerifyMergedCPBytecodes

Type : Boolean
Default value : true
Description : Verify bytecodes after RedefineClasses constant pool merging

YoungGenerationSizeIncrement

Type : Positive Integer
Default value : 20
Description : Adaptive size percentage change in young generation

YoungGenerationSizeSupplement

Type : Positive Integer
Default value : 80
Description : Supplement to YoungedGenerationSizeIncrement used at startup

YoungGenerationSizeSupplementDecay

Type : Positive Integer
Default value : 8
Description : Decay factor to YoungedGenerationSizeSupplement

YoungPLABSize

Type : Positive Integer
Default value : 4096
Description : Size of young gen promotion labs (in HeapWords)

ZeroTLAB

Type : Boolean
Default value : false
Description : Zero out the newly created TLAB