samedi 12 mai 2012

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


6 commentaires:

  1. maybe worth adding info about UseCompressedOops (not sure if it's oracle only)

    RépondreSupprimer
  2. @TheMesaMilieu : ?

    @OlegYch : Indeed, thanks for your comment ! For now, the only options listed are those available for 32 and 64 bits JVM, I will add soon the 64-bits-only options.

    RépondreSupprimer
  3. Great! Would be nice if you can put this together in a PDF?

    RépondreSupprimer
  4. Hi Jugal

    Thanks for your comment. Why not a PDF, indeed, but I'm not sure to see the advantages of having that format as this page can be saved for offline viewing.

    By the way, I created a new (way better) version here : http://jvm-options.tech.xebia.fr/. I think you will like it !

    RépondreSupprimer
  5. Very nice and interesting! And the new site http://jvm-options.tech.xebia.fr is awesome, thanks for your job!

    RépondreSupprimer