Vous êtes sur la page 1sur 22

10/08/2010 A Collection of JVM Options

A Collection of JVM Options


compiled by: Joseph D. Mocker (Sun Microsystems, Inc.)
revision: 28.Aug.2007

This document is a compilation of all the JVM options for various versions of the JVM on primarily
SPARC/Solaris Platform. The descriptions for each option are taken mostly verbatim from the
reference documents.

The JavaTM HotSpot VM Options page makes some good points regarding the different types of
options, which should be followed when reading this document as well. To paraphrase:

Standard options recognized by the Java HotSpot VM are described on the Java Application
Launcher reference pages.
Options that begin with -X are non-standard (not guaranteed to be supported on all VM
implementations), and are subject to change without notice in subsequent releases of the
Java 2 SDK.
Because the -XX options have specific system requirements for correct operation and may
require privileged access to system configuration parameters, they are not recommended for
casual use. These options are also subject to change without notice.

Please submit any comments, corrections, additions to jvm-options-list@sun.com .

Caveats: I am not associated with any Java Platform development group, I simply put this list
together from the various reference sources I could find and without referring to any source code. I
have done my best to ensure the options are valid for representative JVMs, however I have not
tested every version of every JVM so it is quite possible that options may not be valid in all cases.

Option Type 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Description


-client bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Use Client HotSpot VM. Must be first
option.
-server bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Use Server HotSpot VM. Must be first
option.
-verbose[:class|gc|jni] bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable output of various pieces of the
VM. specifying options twice may
produce more detailed output.
-cp path 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set search path for application classes
and resources
-classpath path 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set search path for application classes
and resources
-version bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 print product version and exit
-showversion bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 print product version and continue
-fullversion bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 print full java version and exit
-agentlib:<libname>[=<options>] nv 1.6.0 load native agent library <libname>, e.g. -
agentlib:hprof see also, -
agentlib:jdwp=help and -
agentlib:hprof=help
-agentpath:<pathname>[=<options>] nv 1.6.0 load native agent library by full pathname
-javaagent:<jarpath>[=<options>] nv 1.6.0 load Java programming language agent,
see java.lang.instrument
-d32 bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 use a 32-bit data model if available
-d64 bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 use a 64-bit data model if available
-ea[:packagename...|:classname] list 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable assertions
-enableassertions[:packagename...|:classname] list 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable assertions
-da[:packagename...|:classname] list 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 disable assertions
-disableassertions[:packagename...|:classname] list 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 disable assertions
-esa bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable system assertions
-enablesystemassertions bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable system assertions
-dsa bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 disable system assertions
-disablesystemassertions bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 disable system assertions
-Dname=value nv 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set a system property
-jre-restrict-search bool 1.5.0 1.6.0 include user private JREs in the version
search
-jre-no-restrict-search bool 1.5.0 1.6.0 exclude user private JREs in the version
search
-Xt bool O O O O O O turn on instruction tracing
-Xtm bool O O O O O O turn on method tracing
blogs.sun.com/…/jvm-options-list.html 1/22
10/08/2010 A Collection of JVM Options
-Xbootclasspath[/a|/p]:<path> list 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set, append to, or prepend to boot class
path
-Xdebug bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable remote debugging
-Xfuture bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 enable strictest checks, anticipating
future default
-Xcheck:jni bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 perform additional checks for JNI
functions
-Xshare:off bool 1.6.0 do not attempt to use shared class data
-Xshare:auto bool 1.6.0 use shared class data if possible
(default)
-Xshare:on bool 1.6.0 require using shared class data,
otherwise fail.
-Xnoclassgc bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 disable class garbage collection
-Xss<size> size 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set maximum native stack size for any
thread
-Xoss<size> size 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set maximum Java stack size for any
thread. Note: This option is useless with
HotSpot as HotSpot doesn't have
separate native and Java stacks.
-Xms<size> size 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set initial Java heap size
-Xmx<size> size 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set maximum Java heap size
-Xmn<size> size 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Size of young generation
-Xrs bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 reduce the use of OS signals
-Xrunhprof[:help]|[:option=value, ...] list 1.3.1 1.4.0 1.4.2 1.5.0 1.6.0 perform heap or cpu profiling
-Xmaxjitcodesize<size> size 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 set the maximum size (in bytes) for the
JIT code area
-Xsqnopause bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 do not pause for user interaction on
SIGQUIT
-Xoptimize bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Use optimizing JIT compiler (SPARC
only). Replaced by -server in later VMs
-Xmixed bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 mixed mode execution (default)
-Xint bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 interpreted mode execution only
-Xincgc bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Incremental GC
-Xconcgc bool 1.4.1 1.4.2 1.5.0 1.6.0 Concurrent GC. Replaced by -
XX:+UseConcMarkSweepGC (available
beginning with J2SE 1.4.1)
-Xprof bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Precursor to -Xrunprof.
-Xaprof path 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Simple allocation profiler. unstable.
debug only.
-Xloggc:<file> path 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Log garbage collection actions to a
specified file.
-Xcomp bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Forces HotSpot to compile 100% of the
code with maximum optimization.
-Xbatch bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Forces HotSpot to compile methods in
the foreground. Normally method
compilation is moved from the
foreground to a background process if
they take long. This allows allows the
interpreted version to continue to run until
the compiled version is complete. This
option prevents background compiling.
-Xconcurrentio bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 The main feature turned on with -
Xconcurrentio is to use LWP based
synchronization instead of thread based
synchronization. We have found certain
applications to speed up by over 40%. In
1.4, LWP based synchronization is the
default, but -Xconcurrentio can still help
since it turns on some other internal
options.
-Xgenconfig bool 1.6.0 1.2 option only
-Xverifyheap bool O O O O O Verify heap integrity. Replaced by -
XX:+VerifyBeforeGC -
XX:+VerifyAfterGC -XX:+VerifyTLE (-
XX:+VerifyTLAB in J2SE 1.4) -
XX:+VerifyBeforeScavenge -
blogs.sun.com/…/jvm-options-list.html 2/22
10/08/2010 A Collection of JVM Options
XX:+VerifyAfterScavenge (all debug
only)
-XX:AdaptivePermSizeWeight=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:AdaptiveSizeDecrementScaleFactor=<value> uintx 1.5.0 1.6.0
-XX:AdaptiveSizePolicyCollectionCostMargin=<value> uintx 1.5.0 1.6.0
-XX:AdaptiveSizePolicyFootprintThreshold=<value> uintx 1.5.0
-XX:AdaptiveSizePolicyInitializingSteps=<value> uintx 1.5.0 1.6.0
-XX:AdaptiveSizePolicyWeight=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:AdaptiveSizeThroughPutPolicy=<value> uintx 1.5.0 1.6.0
-XX:AdaptiveTimeWeight=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+AdjustConcurrency bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
HotSpot Performance Tuning

-XX:+AggressiveHeap bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 This option instructs the JVM to push
memory use to the limit: the overall heap
is more than 3850MB, the allocation area
of each thread is 256K, the memory
management policy defers collection as
long as possible, and (beginning with
J2SE 1.3.1_02) some GC activity is
done in parallel.
Big Heaps and Intimate Shared Memory (ISM)
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine

-XX:+AggressiveOpts bool 1.6.0


-XX:AliasLevel=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:AllocatePrefetchDistance=<value> intx 1.6.0
-XX:AllocatePrefetchInstr=<value> intx 1.6.0
-XX:AllocatePrefetchLines=<value> intx 1.6.0
-XX:AllocatePrefetchStepSize=<value> intx 1.6.0
-XX:AllocatePrefetchStyle=<value> intx 1.6.0
-XX:+AllowJNIEnvProxy bool 1.6.0
-XX:+AllowUserSignalHandlers bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Do not complain if the application installs
signal handlers (Solaris Only)
Java HotSpot VM Options

-XX:AltStackSize=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 Alternate signal stack size (in Kbytes,
Solaris Only)
Java HotSpot VM Options

-XX:+AlwaysActAsServerClassMachine bool 1.6.0


-XX:+AlwaysCompileLoopMethods bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:AlwaysInflate=<value> intx 1.6.0
-XX:+AlwaysPreTouch bool 1.6.0
-XX:+AlwaysTenure bool 1.4.1 1.4.2 1.5.0 1.6.0
-XX:AppendRatio=<value> intx 1.5.0 1.6.0
-XX:+BackgroundCompilation bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Enables or disables JIT compilation in
the background. When enabled,
interpreted methods are still executed
until background compilation is
complete.
The Java HotSpot Virtual Machine Client Compiler

-XX:BaseFootPrintEstimate=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0


-XX:BCEATraceLevel=<value> intx 1.6.0
-XX:BiasedLockingBulkRebiasThreshold=<value> intx 1.6.0
-XX:BiasedLockingBulkRevokeThreshold=<value> intx 1.6.0
-XX:BiasedLockingDecayTime=<value> intx 1.6.0
-XX:BiasedLockingStartupDelay=<value> intx 1.6.0
-XX:+BindCMSThreadToCPU bool 1.6.0
-XX:+BindGCTaskThreadsToCPUs bool 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+BindScavengeThreads bool 1.3.1
-XX:+BlockOffsetArrayUseUnallocatedBlock bool 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+BytecodeVerificationLocal bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

bool
blogs.sun.com/…/jvm-options-list.html 3/22
10/08/2010 A Collection of JVM Options
-XX:+BytecodeVerificationRemote bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+CheckJNICalls bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:+CheckUnsafeOps bool 1.4.0 1.4.1 1.4.2 1.5.0
-XX:CICompilerCount=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+CICompilerCountPerCPU bool 1.4.2 1.5.0 1.6.0


-XX:+CIDynamicCompilePriority bool 1.3.1 1.4.0 1.4.1
-XX:+CIMaxPriority bool 1.4.0 1.4.1
-XX:+CITime bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Time spent in JIT Compiler
Java HotSpot VM Options

-XX:+ClassUnloading bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:ClearFPUAtPark=<value> intx 1.6.0
-XX:+ClipInlining bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CMSAbortablePrecleanMinWorkPerIteration=<value> uintx 1.5.0 1.6.0
-XX:CMSAbortablePrecleanWaitMillis=<value> intx 1.5.0 1.6.0
-XX:+CMSAbortSemantics bool 1.6.0
-XX:CMSBitMapYieldQuantum=<value> uintx 1.4.2 1.5.0
-XX:CMSBootstrapOccupancy=<value> intx 1.5.0 1.6.0
-XX:+CMSClassUnloadingEnabled bool 1.4.1 1.4.2 1.5.0 1.6.0 It has been reported that for 1.5, this
apparently needs to be combined with -
XX:+CMSPermGenSweepingEnabled in
order to take effect.
Java Developer Connection Bug Parade

-XX:+CMSCompactWhenClearAllSoftRefs bool 1.4.1 1.4.2 1.5.0 1.6.0


-XX:+CMSConcurrentMTEnabled bool 1.6.0
-XX:CMSDictionaryChoice=<value> intx 1.4.0
-XX:CMSExpAvgFactor=<value> uintx 1.4.2 1.5.0 1.6.0
-XX:CMSFullGCsBeforeCompaction=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0 Parameter that affects compaction of the
old generation. If at least this number of
concurrent collections has not succeeded
between full collection, do a compaction
on full collections. If 0, always do
compactions on full collections when
UseCMSCompactAtFullCollection is true
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:CMSIncrementalDutyCycle=<value> uintx 1.4.2 1.5.0 1.6.0


-XX:CMSIncrementalDutyCycleMin=<value> uintx 1.4.2 1.5.0 1.6.0
-XX:+CMSIncrementalMode bool 1.4.2 1.5.0 1.6.0
-XX:CMSIncrementalOffset=<value> uintx 1.4.2 1.5.0 1.6.0
-XX:+CMSIncrementalPacing bool 1.4.2 1.5.0 1.6.0
-XX:CMSIncrementalSafetyFactor=<value> uintx 1.4.2 1.5.0 1.6.0
-XX:CMSIndexedFreeListReplenish=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CMSInitiatingOccupancyFraction=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0 Sets the threshold percentage of the
used heap in the old generation at which
the CMS collection takes place. For
example, if set to 60, the CMS collector
will be initiated every time the old
generation becomes 60% full. By default,
this threshold is calculated at run time,
and the CMS collector might be triggered
only when the old generation heap is
about 80-90% full. Tuning this value can
improve performance in many cases.
Since the CMS collector does not
suspend the mutators as it sweeps and
frees memory, setting this switch can
ensure that enough free memory is
available for object promotion from the
young generation as more data is
allocated by the application. Sometimes,

blogs.sun.com/…/jvm-options-list.html 4/22
10/08/2010 A Collection of JVM Options
if this switch is not tuned, CMS collection
might not be able to keep up and may
fail, eventually triggering the default stop-
the-world mark-compact collector.
Available from J2SE1.4.1.
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine
Turbo-charging Java HotSpot Virtual Machine

-XX:+CMSLoopWarn bool 1.4.1 1.4.2 1.5.0 1.6.0


-XX:CMSMarkStackSize=<value> uintx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CMSMarkStackSizeMax=<value> uintx 1.5.0 1.6.0
-XX:CMSMaxAbortablePrecleanLoops=<value> uintx 1.5.0 1.6.0
-XX:CMSMaxAbortablePrecleanTime=<value> intx 1.5.0 1.6.0
-XX:+CMSNoWarning bool 1.4.0 1.4.1
Java Developer Connection Bug Parade

-XX:+CMSParallelRemarkEnabled bool 1.4.2 1.5.0 1.6.0 Attempt to descrease remark pauses


when used with -XX:+UseParNewGC.
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:+CMSParallelSurvivorRemarkEnabled bool 1.6.0


-XX:+CMSPermGenPrecleaningEnabled bool 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+CMSPermGenSweepingEnabled bool 1.4.1 1.4.2 1.5.0 1.6.0 It has been reported that for 1.5, this
apparently needs to be combined with -
XX:+CMSClassUnloadingEnabled in
order to take effect.
-XX:+CMSPLABRecordAlways bool 1.6.0
-XX:CMSPrecleanDenominator=<value> uintx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+CMSPrecleaningEnabled bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CMSPrecleanIter=<value> uintx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CMSPrecleanNumerator=<value> uintx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+CMSPrecleanRefLists1 bool 1.5.0 1.6.0
-XX:+CMSPrecleanRefLists2 bool 1.5.0 1.6.0
-XX:+CMSPrecleanSurvivors1 bool 1.6.0
-XX:+CMSPrecleanSurvivors2 bool 1.6.0
-XX:CMSPrecleanThreshold=<value> uintx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CMSRescanMultiple=<value> uintx 1.4.2 1.5.0 1.6.0
-XX:CMSRevisitStackSize=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CMSSamplingGrain=<value> uintx 1.5.0 1.6.0
-XX:+CMSScavengeBeforeRemark bool 1.6.0
-XX:CMSScheduleRemarkEdenPenetration=<value> uintx 1.5.0 1.6.0
-XX:CMSScheduleRemarkEdenSizeThreshold=<value> uintx 1.5.0 1.6.0
-XX:CMSScheduleRemarkSamplingRatio=<value> uintx 1.5.0 1.6.0
-XX:CMSTriggerRatio=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+CMSUseOldDefaults bool 1.6.0
-XX:CMSWaitDuration=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CMSWorkQueueDrainThreshold=<value> uintx 1.4.2 1.5.0 1.6.0
-XX:+CMSYield bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CMSYieldQuantum=<value> intx 1.4.0 1.4.1
-XX:CMSYoungGenPerWorker=<value> intx 1.6.0
-XX:CodeCacheExpansionSize=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CodeCacheMinimumFreeSpace=<value> uintx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+CodeForP6 bool 1.3.1
Java Developer Connection Bug Parade

-XX:+CollectGen0First bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:+CompactFields bool 1.6.0
-XX:CompilationPolicyChoice=<value> intx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CompilationRepeat=<value> intx 1.4.2 1.5.0
-XX:CompileCommand=<value> ccstr 1.4.2 1.5.0 1.6.0
-XX:CompileCommandFile=<value> ccstr 1.4.2 1.5.0 1.6.0 Allows you to specify alternate compiler
command files. When used, this
overrides the default behavior of the VM

blogs.sun.com/…/jvm-options-list.html 5/22
10/08/2010 A Collection of JVM Options
and the VM will NOT scan either the
libjvm.sl directory or the current directory
for a .hotspot_compiler file.
SDK release notes 1.3.1.12

-XX:CompileOnly=<value> ccstr 1.4.2 1.5.0 1.6.0


-XX:+CompilerThreadHintNoPreempt bool 1.4.2 1.5.0 1.6.0
-XX:CompilerThreadPriority=<value> intx 1.4.2 1.5.0 1.6.0
-XX:CompilerThreadStackSize=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:CompileThreshold=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 number of method invocations/branches
before (re-)compiling [10,000 -server,
1,500 -client]
Java HotSpot VM Options

-XX:+ConvertSleepToYield bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:+ConvertYieldToSleep bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+DebugNonSafepoints bool 1.6.0
-XX:DefaultInitialRAMFraction=<value> uintx 1.5.0 1.6.0
-XX:DefaultMaxRAM=<value> uintx 1.5.0 1.6.0
-XX:DefaultMaxRAMFraction=<value> uintx 1.5.0 1.6.0
-XX:DefaultThreadPriority=<value> intx 1.4.2 1.5.0 1.6.0
-XX:DefaultTickInterval=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 O
-XX:+DefaultUseSpecLock bool 1.3.1 1.4.0
Java Developer Connection Bug Parade

-XX:DeferPollingPageLoopCount=<value> intx 1.6.0


-XX:DeferThrSuspendLoopCount=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:DelayTickAdjustment=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 O
-XX:+DisableAttachMechanism bool 1.6.0
-XX:+DisableExplicitGC bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Disable calls to System.gc(), JVM still
performs garbage collection when
necessary
Java HotSpot VM Options
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine

-XX:+DisplayVMOutput bool 1.4.2 1.5.0 1.6.0


-XX:+DisplayVMOutputToStderr bool 1.5.0 1.6.0
-XX:+DisplayVMOutputToStdout bool 1.5.0 1.6.0
-XX:+DontCompileHugeMethods bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+DontYieldALot bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+DontYieldALotInterval bool Interval in milliseconds between yields.


(debug only)
Java HotSpot VM Options

-XX:+DTraceAllocProbes bool 1.6.0


-XX:+DTraceMethodProbes bool 1.6.0
-XX:+DTraceMonitorProbes bool 1.6.0
-XX:+DumpSharedSpaces bool 1.5.0 1.6.0
-XX:+EagerInitialization bool 1.4.1
Java Developer Connection Bug Parade

-XX:+EagerXrunInit bool 1.4.2 1.5.0 1.6.0


-XX:EmitLFence=<value> intx 1.6.0
-XX:EmitSync=<value> intx 1.6.0
-XX:+EnableJVMPIInstructionStartEvent bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Enables or disables the JVMPI event,
JVMPI_EVENT_INSTRUCTION_START,
which is sent when each instruction is
issued by the interpreter
JavaTM Virtual Machine Profiler Interface (JVMPI)

-XX:ErrorFile=<value> ccstr 1.6.0


-XX:+EstimateArgEscape bool 1.6.0
-XX:EventLogLength=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

blogs.sun.com/…/jvm-options-list.html 6/22
10/08/2010 A Collection of JVM Options
-XX:+ExitOnBadLibThread bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0
-XX:+ExplicitGCInvokesConcurrent bool 1.6.0
-XX:+ExtendedDTraceProbes bool 1.6.0
-XX:+FailOverToOldVerifier bool 1.6.0
-XX:+FasterSync bool 1.3.1
-XX:+FastNMethodDependencies bool 1.4.1 1.4.2 1.5.0
Java Developer Connection Bug Parade

-XX:+FastTLABRefill bool 1.5.0


-XX:FieldsAllocationStyle=<value> intx 1.6.0
-XX:+FilterSpuriousWakeups bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:FloatCacheThreshold=<value> intx 1.4.0
-XX:+FLSVerifyAllHeapReferences bool 1.6.0
-XX:+FLSVerifyIndexTable bool 1.6.0
-XX:+FLSVerifyLists bool 1.6.0
-XX:+ForceSharedSpaces bool 1.5.0 1.6.0
-XX:+ForceTimeHighResolution bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+ForceUseSpecLock bool 1.3.1 1.4.0


Java Developer Connection Bug Parade

-XX:FreqInlineSize=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Integer specifying maximum number of
bytecode instructions in a frequently
executed method which gets inlined.
Java HotSpot VM Options

-XX:+FullSpeedJVMDI bool 1.4.0 1.4.1 1.4.2


Java Developer Connection Bug Parade

-XX:GCHeapFreeLimit=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0 Used with -XX:+UseParallelGC to help
prevent out-of-memory exceptions from
occuring during garbage collection. This
parameter specifies the lower limit on the
amount of space freed during a garbage
collection in per cent of the maximum
heap (default is 5).
Garbage Collector Ergonomics

-XX:GCTaskTimeStampEntries=<value> uintx 1.4.2 1.5.0 1.6.0


-XX:GCTimeLimit=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0 Used with -XX:+UseParallelGC to help
prevent out-of-memory exceptions from
occuring during garbage collection. This
parameter specifies the upper limit on
the amount of time spent in garbage
collection in per cent of total time (default
is 90)
Garbage Collector Ergonomics

-XX:GCTimeRatio=<value> uintx 1.5.0 1.6.0 The ratio of GC time to application time,


ratio being: 1 / (1 + nnn). For example -
XX:GCTimeRatio=19 sets a goal of 5%
of the total time for GC.
Garbage Collector Ergonomics

-XX:+HandlePromotionFailure bool 1.5.0 1.6.0


-XX:hashCode=<value> intx 1.6.0
-XX:+HeapDumpOnOutOfMemoryError bool 1.6.0
-XX:HeapDumpPath=<value> ccstr 1.6.0
-XX:HPILibPath=<value> ccstr 1.6.0
-XX:InitialCodeCacheSize=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:InitialSurvivorRatio=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:InitialTenuringThreshold=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0


-XX:+Inline bool 1.3.1 1.4.1 1.4.2 1.5.0 1.6.0

blogs.sun.com/…/jvm-options-list.html 7/22
10/08/2010 A Collection of JVM Options
Java Developer Connection Bug Parade

-XX:InlineSmallCode=<value> intx 1.3.1 1.4.2


-XX:+InlineUnreachedCalls bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0
-XX:+InstallMethods bool 1.3.1
-XX:InterpreterProfilePercentage=<value> intx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+JavaMonitorsInStackTrace bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Useful to display more stack trace
information about monitors
Java Developer Connection Forums

-XX:JavaPriority1_To_OSPriority=<value> intx 1.4.2 1.5.0 1.6.0


-XX:JavaPriority10_To_OSPriority=<value> intx 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:JavaPriority2_To_OSPriority=<value> intx 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:JavaPriority3_To_OSPriority=<value> intx 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:JavaPriority4_To_OSPriority=<value> intx 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:JavaPriority5_To_OSPriority=<value> intx 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:JavaPriority6_To_OSPriority=<value> intx 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:JavaPriority7_To_OSPriority=<value> intx 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:JavaPriority8_To_OSPriority=<value> intx 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:JavaPriority9_To_OSPriority=<value> intx 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:+JNIDetachReleasesMonitors bool 1.6.0


-XX:+JVMPICheckGCCompatibility bool 1.5.0 1.6.0
-XX:LargePageHeapSizeThreshold=<value> uintx 1.5.0 1.6.0
-XX:LargePageSizeInBytes=<value> uintx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+LazyBootClassLoader bool 1.6.0
-XX:+LIRCacheLocals bool 1.4.0 1.4.1 1.4.2 1.5.0
Java Developer Connection Bug Parade

-XX:+LIRFillDelaySlots bool 1.4.0 1.4.1 1.4.2 1.5.0


-XX:+LIROptimize bool 1.4.0
-XX:+LIROptimizeDeleteOps bool 1.4.0
-XX:+LIROptimizeFloats bool 1.4.0
-XX:+LIROptimizeStack bool 1.4.0
-XX:LocalCacheThreshold=<value> intx 1.4.0
-XX:+LogCompilation bool 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:LogFile=<value> ccstr 1.4.2 1.5.0


Java Developer Connection Bug Parade

-XX:+LogVMOutput bool 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:MallocVerifyInterval=<value> intx 1.6.0


-XX:MallocVerifyStart=<value> intx 1.6.0
-XX:+ManagementServer bool 1.5.0 1.6.0
-XX:MarkSweepAlwaysCompactCount=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:MarkSweepDeadRatio=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0

blogs.sun.com/…/jvm-options-list.html 8/22
10/08/2010 A Collection of JVM Options
Java Developer Connection Bug Parade

-XX:MaxBCEAEstimateLevel=<value> intx 1.6.0


-XX:MaxBCEAEstimateSize=<value> intx 1.6.0
-XX:MaxDirectMemorySize=<value> intx 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+MaxFDLimit bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Bump the number of file descriptors to
max. (Solaris only)
Java HotSpot VM Options

-XX:MaxGCMinorPauseMillis=<value> uintx 1.5.0 1.6.0


-XX:MaxGCPauseMillis=<value> uintx 1.5.0 1.6.0 A hint to the virtual machine that pause
times of nnn milliseconds or less are
desired. The vm will adjust the java heap
size and other gc-related parameters in
an attempt to keep gc-induced pauses
shorter than nnn milliseconds. Note that
this may cause the vm to reduce overall
throughput, and in some cases the vm
will not be able to meet the desired
pause time goal.
Garbage Collector Ergonomics

-XX:MaxHeapFreeRatio=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 heap free percentage (default 70)
Java HotSpot VM Options
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
HotSpot Performance Tuning

-XX:MaxHeapSize=<value> uintx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:MaxInlineLevel=<value> intx 1.3.1 1.4.2
Java Developer Connection Bug Parade

-XX:MaxInlineSize=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Integer specifying maximum number of
bytecode instructions in a method which
gets inlined.
Java HotSpot VM Options

-XX:MaxJavaStackTraceDepth=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:MaxLiveObjectEvacuationRatio=<value> uintx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Forums

-XX:MaxNewSize=<value> uintx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Maximum size of new generation (in
bytes) [32m sparc, 2.5m intel for 1.3, no
limit for 1.4 as NewRatio is now used to
determine MaxNewSize]
Frequently Asked Questions About the Java HotSpot VM
Turbo-charging Java HotSpot Virtual Machine
Java HotSpot VM Options

-XX:MaxPermHeapExpansion=<value> uintx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:MaxPermSize=<value> uintx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Size of the Permanent Generation
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Java HotSpot VM Options
Tuning Garbage Collection with the 1.3.1 Java Virtual Machine

-XX:MaxRecursiveInlineLevel=<value> intx 1.3.1 1.4.2


-XX:MaxSurvivorShrinkRatio=<value> size_t 1.3.1
-XX:MaxTenuringThreshold=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 This switch determines how much the
objects may age in the young generation
before getting promoted to the older
generation. The default value is 31. For a
big enough young generation and
"survivor space", the long-lived objects
may be copied up to 31 times between
the survivor spaces before they are finally
promoted to the old generation.

blogs.sun.com/…/jvm-options-list.html 9/22
10/08/2010 A Collection of JVM Options
Turbo-charging Java HotSpot Virtual Machine
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:MaxTickInterval=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 O


-XX:MaxTLABRatio=<value> uintx 1.4.0 1.4.1 1.4.2
-XX:MaxTLERatio=<value> 1.3.1 1.6.0
-XX:MinHeapDeltaBytes=<value> uintx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:MinHeapFreeRatio=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 heap free percentage (default 40)
Java HotSpot VM Options
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Tuning Garbage Collection with the 1.3.1 Java Virtual Machine

-XX:MinOldHeapExpansion=<value> size_t 1.3.1


-XX:MinPermHeapExpansion=<value> uintx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:MinSurvivorRatio=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:MinTickInterval=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 O
-XX:MinTLABSize=<value> uintx 1.5.0 1.6.0
-XX:NativeSynchronization=<value> ccstr 1.5.0
-XX:+NeverActAsServerClassMachine bool 1.6.0
-XX:+NeverTenure bool 1.4.1 1.4.2 1.5.0 1.6.0
-XX:NewRatio=<value> intx Ratio of new/old generation sizes [sparc
1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-server: 2, sparc -client: 4 (1.3) 8
(1.3.1+), intel: 12]
-XX:NewSize=<value> uintx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Default size of new generation (in bytes)
[sparc 2.125M, intel: 640k]
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Frequently Asked Questions About the Java HotSpot VM
Java HotSpot VM Options
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1

-XX:NewSizeThreadIncrease=<value> uintx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 As more threads are created in a server
application, the object allocation rate
may increase with the number of active
threads. The number of active threads is
considered when adjusting the size of the
young space, after a garbage collection.
This flag specifies, in Kilobytes, the
increment in young object space size,
per active thread, to accomodate
potentially faster object allocation rate.
Java HotSpotTM Server VM Version 2.0 for Win32 Platforms

-XX:NmethodSweepFraction=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:NMethodSweepInterval=<value> 1.3.1
-XX:NUMAChunkResizeWeight=<value> intx 1.6.0
-XX:NUMAPageScanRate=<value> intx 1.6.0
-XX:NUMASpaceResizeRate=<value> intx 1.6.0
-XX:+NUMAStats bool 1.6.0
-XX:OldPLABSize=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:OldSize=<value> uintx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+OmitStackTraceInFastThrow bool 1.6.0
-XX:OnError=<value> ccstr 1.5.0 1.6.0 The Hotspot JVM includes a fatal error
hander that can run a user-supplied script
or program if the JVM aborts. A debug
tool can also connect to a hung JVM or
core file using the Hotspot JVM
serviceability agent connector.
J2SE 1.5 in a Nutshell

-XX:OnOutOfMemoryError=<value> ccstr 1.6.0


-XX:OnStackReplacePercentage=<value> intx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:OnStackReplaceThreshold=<value> 1.3.1
-XX:+OptimizeSinglePrecision bool 1.4.0
-XX:+OverrideDefaultLibthread bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 On Solaris 9, this option is not
necessary. On Solaris 8, J2SE? versions
1.3.1_02+ and 1.4+ require this option
blogs.sun.com/…/jvm-options-list.html 10/22
10/08/2010 A Collection of JVM Options
when using the alternate threads library.
This option is not possible on pre-Solaris
8 operating environments.
Java Developer Connection Forums
Java HotSpot VM Options (docs.sun.com)

-XX:OversizedCarThreshold=<value> uintx 1.4.0 1.4.1 1.4.2 1.5.0 O


-XX:ParallelGCBufferWastePct=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:ParallelGCG1AllocBufferSize=<value> intx 1.4.1 1.4.2 1.5.0
-XX:ParallelGCOldGenAllocBufferSize=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0 Java 6: se -XX:OldPLABSize in place of
-XX:ParallelGCOldGenAllocBufferSize in
the future.
-XX:+ParallelGCRetainPLAB bool 1.5.0 1.6.0
-XX:ParallelGCTermSpinLoopMS=<value> intx 1.4.1 1.4.2 1.5.0
-XX:ParallelGCThreads=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0 This switch sets the number of parallel
GC threads that the JVM must run for
performing garbage collection in the
young generation. The default value of n
is equal to the number of CPUs on the
system. However, it has been observed
that tweaking this number may improve
performance in some cases. An example
might be that of multiple instances of
JVM running on a single multi-CPU
system. In this case, the number of
parallel GC threads for each JVM may
need to be set to less than the number of
CPUs by using this switch. Available
from J2SE1.4.1.
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Turbo-charging Java HotSpot Virtual Machine

-XX:ParallelGCToSpaceAllocBufferSize=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0 Java 6: Use -XX:YoungPLABSize in


place of -
XX:ParallelGCToSpaceAllocBufferSize
in the future.
-XX:+ParallelGCVerbose bool 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+ParallelRefProcEnabled bool 1.5.0 1.6.0
-XX:ParCMSPromoteBlocksToClaim=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0 Java 6: Use -
XX:CMSParPromoteBlocksToClaim in
place of -
XX:ParCMSPromoteBlocksToClaim in
the future.
-XX:ParGCArrayScanChunk=<value> intx 1.5.0 1.6.0
-XX:ParGCDesiredObjsFromOverflowList=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:ParGCMaxArrayAsNormalObject=<value> intx 1.4.1 1.4.2
-XX:+ParkTLE bool 1.3.1
-XX:+PassParametersInRegisters bool 1.3.1
-XX:+PauseAtStartup bool 1.6.0
-XX:PauseAtStartupFile=<value> ccstr 1.6.0
-XX:PerBytecodeRecompilationCutoff=<value> intx 1.6.0
-XX:PerBytecodeTrapLimit=<value> intx 1.6.0
-XX:+PerfAllowAtExitRegistration bool 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+PerfBypassFileSystemCheck bool 1.4.2 1.5.0 1.6.0
-XX:PerfDataMemorySize=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:PerfDataSamplingInterval=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0


-XX:+PerfDataSaveToFile bool 1.4.1 1.4.2 1.5.0 1.6.0

-XX:+PerfDisableSharedMem bool 1.4.1 1.4.2 1.5.0 1.6.0


1.4.2 HotSpot Instrumentation

-XX:PerfMaxStringConstLength=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0


-XX:PerMethodRecompilationCutoff=<value> intx 1.6.0
intx 1.6.0
blogs.sun.com/…/jvm-options-list.html 11/22
10/08/2010 A Collection of JVM Options
-XX:PerMethodTrapLimit=<value> intx 1.6.0
-XX:PermGenPadding=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:PermMarkSweepDeadRatio=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:PermSize=<value> uintx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Initial size of permanent generation
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:+PostSpinYield bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:PreBlockSpin=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+PreferInterpreterNativeStubs bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:PrefetchCopyIntervalInBytes=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Prefetch n bytes ahead for scavenge
copy destination area. The default is 0.
The ideal value may vary depending on
the processor.
HotSpot Technology Tools and HP-Specific Features

-XX:PrefetchFieldsAhead=<value> intx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:PrefetchScanIntervalInBytes=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Prefetch n bytes ahead for scavenge
scan area. The default is 0. The ideal
value may vary depending on the
processor.
HotSpot Technology Tools and HP-Specific Features

-XX:PrefetchScavengeFieldsAhead=<value> 1.3.1 Prefetch the next n fields of objects


during scavenge. The default is 0. The
ideal value may vary depending on the
processor.
HotSpot Technology Tools and HP-Specific Features

-XX:PreInflateSpin=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:+PreserveAllAnnotations bool 1.5.0 1.6.0
-XX:PreserveMarkStackSize=<value> uintx 1.5.0 1.6.0
-XX:+PreSpinYield bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:PretenureSizeThreshold=<value> uintx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Objects size greater than this is directly
allocated in the older generation
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:+PrintAdaptiveSizePolicy bool 1.4.1 1.4.2 1.5.0 1.6.0 Prints information about adaptive size
policy
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1

-XX:+PrintClassHistogram bool 1.4.2 1.5.0 1.6.0 Prints the all the java heap objects, their
instance count and total space they
occupy in the heap. The only downside is
that you need to issue a SIGQUIT (see -
Xsqnopause) which will leave the app
running but will dump all of this data to
stdout. Very useful to assist in identifying
memory problems for example on a
production platform where an CPU
intensive profiler cannot be used.
-XX:+PrintCMSInitiationStatistics bool 1.6.0
-XX:PrintCMSStatistics=<value> intx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 If > 0, Print statistics about the concurrent
collections. For example, the number of
times the concurrent collection yield to a
young generation collection and the
number of cards precleaned
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1

-XX:+PrintCommandLineFlags bool 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:+PrintCompilation bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 traces methods as compiled
Java HotSpot VM Options

-XX:+PrintConcurrentLocks bool 1.6.0


intx 1.4.1 1.4.2 1.5.0 1.6.0 if > 0, print the populations of the CMS
blogs.sun.com/…/jvm-options-list.html 12/22
10/08/2010 A Collection of JVM Options
-XX:PrintFLSCensus=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0 if > 0, print the populations of the CMS
free lists
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1

-XX:PrintFLSStatistics=<value> intx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 If > 0, print statistics about the concurrent
free lists. For example, a fragmentation
parameter
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1

-XX:+PrintGC bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1

-XX:+PrintGCApplicationConcurrentTime bool 1.4.2 1.5.0 1.6.0 Measure the amount of time the
applications runs between collection
pauses
Diagnosing a Garbage Collection problem

-XX:+PrintGCApplicationStoppedTime bool 1.4.2 1.5.0 1.6.0 Measure the length of the collection
pauses.
Diagnosing a Garbage Collection problem

-XX:+PrintGCDetails bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Gives some details about the GCs, such
as size of the young and old generation
before and after GCs, size of total heap,
time it takes for a GC to happen in young
and old generation, size of objects
promoted at every GC etc.
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Turbo-charging Java HotSpot Virtual Machine
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:+PrintGCTaskTimeStamps bool 1.4.2 1.5.0 1.6.0


-XX:+PrintGCTimeStamps bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Prints the times at which the GCs happen
relative to the start of the application
Turbo-charging Java HotSpot Virtual Machine
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
GC Portal
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine

-XX:+PrintHeapAtGC bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Prints detailed GC info including heap
occupancy before and after GC.
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1

-XX:+PrintHeapAtSIGBREAK bool 1.6.0


-XX:+PrintHeapUsageOverTime bool Print heap usage and capacity with
timestamps
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1

-XX:+PrintInlining bool Print message about inlined methods


(debug only)
Java HotSpot VM Options

-XX:+PrintInterpreter bool 1.6.0


-XX:+PrintJNIResolving bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+PrintParallelOldGCPhaseTimes bool 1.6.0
-XX:+PrintParScavenge bool 1.3.1
-XX:+PrintPLAB bool 1.6.0
-XX:+PrintScavenge bool 1.3.1
Java Developer Connection Bug Parade

-XX:+PrintSharedSpaces bool 1.5.0 1.6.0


-XX:+PrintTenuringDistribution bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Gives the aging distribution of the
allocated objects in the young
generation. Tuning of -XX:NewSize, -
XX:MaxNewSize, -XX:SurvivorRatio and
-XX:MaxTenuringThreshold=0as
described earlier, should be directed by
the analysis of the output from this switch
to determine that objects are not

blogs.sun.com/…/jvm-options-list.html 13/22
10/08/2010 A Collection of JVM Options
prematurely promoted to the old
generation.
Turbo-charging Java HotSpot Virtual Machine
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Tuning Garbage Collection with the 1.3.1 Java Virtual Machine
GC Portal

-XX:+PrintTLAB bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 trace all the operations on TLAB's
(Thread Allocation Buffers)
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:+PrintTLE bool 1.3.1 1.6.0


-XX:+PrintVMOptions bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+PrintVMQWaitTime bool 1.6.0


-XX:ProcessDistributionStride=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:ProcessingToTenuringRatio=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 O
-XX:+ProfileIntervals bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:ProfileIntervalsTicks=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:ProfileMaturityPercentage=<value> intx 1.6.0


-XX:+ProfilerLight bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0
-XX:+ProfilerPrintByteCodeStatistics bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+ProfilerRecordPC bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:+ProfileVM bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:PromotedPadding=<value> uintx 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:QueuedAllocationWarningCount=<value> intx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:+RangeCheckElimination bool 1.6.0


-XX:ReadPrefetchInstr=<value> intx 1.6.0
-XX:ReadSpinIterations=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+ReduceSignalUsage bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:RefDiscoveryPolicy=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0


-XX:+RegisterFinalizersAtInit bool 1.6.0
-XX:+RelaxAccessControlCheck bool 1.6.0
-XX:+RequireSharedSpaces bool 1.5.0 1.6.0
-XX:ReservedCodeCacheSize=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Reserved code cache size (in bytes) -
maximum code cache size. [Solaris 64-
bit: 1024m]
Java HotSpot VM Options

-XX:+ResizePLAB bool 1.6.0


-XX:+ResizeTLAB bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Enable or disable resizing of TLABs. The
-server VM has this option enabled by
default.
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:+ResizeTLE bool 1.3.1 1.6.0


Java Developer Connection Bug Parade

-XX:+RestoreMXCSROnJNICalls bool 1.6.0

blogs.sun.com/…/jvm-options-list.html 14/22
10/08/2010 A Collection of JVM Options
-XX:+RewriteBytecodes bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+RewriteFrequentPairs bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:+SafepointPolling bool 1.5.0


Java Developer Connection Bug Parade

-XX:SafepointSpinBeforeYield=<value> intx 1.6.0


-XX:+ScavengeBeforeFullGC bool 1.4.1 1.4.2 1.5.0 1.6.0
-XX:ScavengeThreads=<value> 1.3.1
-XX:SelfDestructTimer=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+SerializeVMOutput bool 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:SharedDummyBlockSize=<value> uintx 1.5.0 1.6.0


-XX:SharedMiscDataSize=<value> uintx 1.5.0 1.6.0
-XX:+SharedOptimizeColdStart bool 1.6.0
-XX:SharedReadOnlySize=<value> uintx 1.5.0 1.6.0
-XX:SharedReadWriteSize=<value> uintx 1.5.0 1.6.0
-XX:+SharedSkipVerify bool 1.6.0
-XX:+ShowMessageBoxOnError bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:SliceSizeInCards=<value> 1.3.1
-XX:SoftRefLRUPolicyMSPerMB=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Starting with Java HotSpot VM
implementations in J2SE 1.3.1, softly
reachable objects will remain alive for
some amount of time after the last time
they were referenced. The default value
is one second of lifetime per free
megabyte in the heap. This value can be
adjusted using the -
XX:SoftRefLRUPolicyMSPerMB flag,
which accepts integer values
representing milliseconds per MB of free
memory.
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine
Frequently Asked Questions About the Java HotSpot VM
Tuning Garbage Collection with the 1.3.1 Java Virtual Machine
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine

-XX:+SplitIfBlocks bool 1.6.0


-XX:StackRedPages=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:StackShadowPages=<value> intx 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+StackTraceInThrowable bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Enable or disable stack traces in
exceptions.
The Java HotSpot Virtual Machine Client Compiler

-XX:StackYellowPages=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:Stage2CompileThreshold=<value> intx 1.4.0
-XX:+StagedCompilation bool 1.4.0
-XX:+StartAttachListener bool 1.6.0
-XX:StarvationMonitorInterval=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+StressLdcRewrite bool 1.6.0
-XX:+StressTieredRuntime bool 1.6.0
-XX:+SuppressFatalErrorMessage bool 1.6.0
-XX:SurvivorPadding=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:SurvivorRatio=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Sets the ratio of the survivor spaces
(there are two) to the whole of the young
generation.
Turbo-charging Java HotSpot Virtual Machine
A Test of Java Virtual Machine Performance

blogs.sun.com/…/jvm-options-list.html 15/22
10/08/2010 A Collection of JVM Options
Tuning Garbage Collection with the 1.3.1 Java Virtual Machine
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Frequently Asked Questions About the Java HotSpot VM
Java HotSpot VM Options
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:SuspendRetryCount=<value> intx 1.6.0


-XX:SuspendRetryDelay=<value> intx 1.6.0
-XX:SyncFlags=<value> intx 1.6.0
-XX:SyncKnobs=<value> ccstr 1.6.0
-XX:SyncVerbose=<value> intx 1.6.0
-XX:+TaggedStackInterpreter bool 1.6.0
-XX:TargetPLABWastePct=<value> intx 1.6.0
-XX:TargetSurvivorOccupationRatio=<value> size_t 1.3.1
-XX:TargetSurvivorPadding=<value> size_t 1.3.1
-XX:TargetSurvivorRatio=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 This flag sets the desired percentage of
the survivor space heap which must be
used before objects are promoted to the
old generation. For example, setting z to
90 would mean that 90% of the survivor
space must be used before the young
generation is considered full and objects
are promoted to the old generation. This
would allow objects to age more in the
young generation before being tenured.
The default value is 50.
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine
Java HotSpot VM Options

-XX:TenuredGenerationSizeIncrement=<value> uintx 1.5.0 1.6.0


-XX:TenuredGenerationSizeSupplement=<value> uintx 1.5.0 1.6.0
-XX:TenuredGenerationSizeSupplementDecay=<value> uintx 1.5.0 1.6.0
-XX:ThreadPriorityPolicy=<value> intx 1.5.0 1.6.0
-XX:+ThreadPriorityVerbose bool 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:ThreadSafetyMargin=<value> intx 1.5.0 1.6.0


-XX:ThreadStackSize=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Thread Stack Size (in Kbytes) (0 means
use default stack size) [Sparc: 512,
Solaris Intel: 256, Sparc 64bit: 1024 all
others 0]
Java HotSpot VM Options

-XX:ThresholdTolerance=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0


-XX:Tier1BytecodeLimit=<value> intx 1.6.0
-XX:+Tier1UpdateMethodData bool 1.6.0
-XX:Tier2BackEdgeThreshold=<value> intx 1.6.0
-XX:Tier2CompileThreshold=<value> intx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+TieredCompilation bool 1.4.1 1.4.2 1.5.0 1.6.0
-XX:TLABAllocationWeight=<value> uintx 1.5.0 1.6.0
-XX:TLABFragmentationRatio=<value> uintx 1.4.0 1.4.1 1.4.2
-XX:TLABRefillWasteFraction=<value> uintx 1.5.0 1.6.0
-XX:TLABSize=<value> uintx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Set the size of the TLAB in bytes.
Java and Solaris Threading

-XX:+TLABStats bool 1.5.0 1.6.0


-XX:TLABThreadRatio=<value> uintx 1.4.0 1.4.1 1.4.2
Java Developer Connection Bug Parade

-XX:TLABWasteIncrement=<value> uintx 1.5.0 1.6.0


-XX:TLABWasteTargetPercent=<value> uintx 1.5.0 1.6.0
-XX:TLEFragmentationRatio=<value> 1.3.1 1.6.0
-XX:TLESize=<value> size_t 1.3.1 1.6.0 Sets the size of the TLEs (in bytes)
Java and Solaris Threading

-XX:TLEThreadRatio=<value> 1.3.1 1.6.0


Java Developer Connection Bug Parade

blogs.sun.com/…/jvm-options-list.html 16/22
10/08/2010 A Collection of JVM Options

-XX:+TraceBiasedLocking bool 1.6.0


-XX:+TraceClassLoading bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Display classes as they are loaded.
Similar to -verbose:class
-XX:+TraceClassLoadingPreorder bool 1.4.2 1.5.0 1.6.0
-XX:+TraceClassResolution bool 1.4.2 1.5.0 1.6.0
-XX:+TraceClassUnloading bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Display classes as they are unloaded.
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:+TraceFailedVMTextSegmentRetarget bool 1.4.0 1.4.1


-XX:+TraceGen0Time bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+TraceGen1Time bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:TraceJVMTI=<value> ccstr 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+TraceJVMTIObjectTagging bool 1.5.0 1.6.0


-XX:+TraceLoaderConstraints bool 1.6.0
-XX:+TraceMonitorInflation bool 1.6.0
-XX:+TraceParallelOldGCTasks bool 1.6.0
-XX:TraceRedefineClasses=<value> intx 1.6.0
-XX:TypeProfileFailureLimit=<value> intx 1.4.0 1.4.1 1.4.2 1.5.0
-XX:TypeProfileMinimumRatio=<value> intx 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
-XX:Ultra3PrefetchCopyIntervalInBytes=<value> 1.3.1
-XX:Ultra3PrefetchScanIntervalInBytes=<value> 1.3.1
-XX:Ultra3PrefetchScavengeFieldsAhead=<value> 1.3.1
-XX:UnguardOnExecutionViolation=<value> intx 1.6.0
-XX:+UnlockDiagnosticVMOptions bool 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+Use486InstrsOnly bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:+UseAdaptiveGCBoundary bool 1.5.0 1.6.0
- bool 1.5.0 1.6.0
XX:+UseAdaptiveGenerationSizePolicyAtMajorCollection
- bool 1.5.0 1.6.0
XX:+UseAdaptiveGenerationSizePolicyAtMinorCollection
-XX:+UseAdaptiveNUMAChunkSizing bool 1.6.0
-XX:+UseAdaptiveSizeDecayMajorGCCost bool 1.6.0
-XX:+UseAdaptiveSizePolicy bool 1.4.1 1.4.2 1.5.0 1.6.0 Automatically sizes the young generation
and chooses an optimum survivor ratio to
maximize performance.
Garbage Collector Ergonomics
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:+UseAdaptiveSizePolicyAggressiveFootprintGoal bool 1.5.0


-XX:+UseAdaptiveSizePolicyFootprintGoal bool 1.5.0 1.6.0
-XX:+UseAdaptiveSizePolicyWithSystemGC bool 1.5.0 1.6.0
-XX:+UseAdaptiveSizeScaleFootprintChangeByRatio bool 1.5.0
-XX:+UseAdaptiveSizeScaleThroughputChangeByRatio bool 1.5.0
-XX:+UseAltSigs bool 1.3.1 1.4.1 1.4.2 1.5.0 1.6.0 On the Solaris operating environment,
the VM uses SIGUSR1 by default, which
can sometimes conflict with applications
that signal-chain SIGUSR1. -
XX:+UseAltSigs will cause the VM to use
signals other than SIGUSR1 and
SIGUSR2 as the default.
Java HotSpot VM Options

-XX:+UseAutoGCSelectPolicy bool 1.6.0


-XX:+UseBiasedLocking bool 1.5.0 1.6.0 This option first appears in 1.5.0_06.
Enables a technique for improving the
performance of uncontended
synchronization. Some applications with
significant amounts of uncontended
synchronization may attain significant
speedups with this flag enabled.
blogs.sun.com/…/jvm-options-list.html 17/22
10/08/2010 A Collection of JVM Options
Java Tuning White Paper

-XX:+UseBoundThreads bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Bind user level threads (Solaris only)
A Test of Java Virtual Machine Performance
Java HotSpot VM Options
Java and Solaris Threading
Frequently Asked Questions About the Java HotSpot VM

-XX:+UseC2CallingConventions bool 1.3.1 1.4.0 1.4.1 1.4.2


Java Developer Connection Bug Parade

-XX:+UseCMSBestFit bool 1.4.1 1.4.2 1.5.0 1.6.0


-XX:+UseCMSCollectionPassing bool 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+UseCMSCompactAtFullCollection bool 1.4.1 1.4.2 1.5.0 1.6.0 Normally the concurrent low pause
collector does not copy nor compact the
live objects. A garbage collection is done
without moving the live objects. If
fragmentation becomes a problem,
allocate a larger heap. In 1.4.2 if
fragmentation in the tenured generation
becomes a problem, a compaction of the
tenured generation will be done although
not concurrently. In 1.4.1 that compaction
will occur if the
UseCMSCompactAtFullCollection option
is turned on.
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:+UseCMSInitiatingOccupancyOnly bool 1.4.1 1.4.2 1.5.0 1.6.0 Used to enabled/disable the use of the
anticipated promotions to start a
concurrent collection set
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine

-XX:+UseCompiler bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


-XX:+UseCompilerSafepoints bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+UseConcMarkSweepGC bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 This flag turns on concurrent garbage
collection in the old generation. Available
from J2SE1.4.1.
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Turbo-charging Java HotSpot Virtual Machine
Java HotSpot VM Options

-XX:+UseDefaultStackSize bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0


-XX:+UseDepthFirstScavengeOrder bool 1.6.0
-XX:+UseExtendedFileIO bool 1.6.0
-XX:+UseFastAccessorMethods bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+UseFastEmptyMethods bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:+UseFastJNIAccessors bool 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:+UseFixedFrameSize bool 1.4.0 1.4.1 1.4.2


Java Developer Connection Bug Parade

-XX:+UseForcedSuspension bool 1.4.1 1.4.2


Java Developer Connection Bug Parade

-XX:+UseGCOverheadLimit bool 1.6.0


-XX:+UseGCTaskAffinity bool 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+UseHeavyMonitors bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+UseInterpreter bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


blogs.sun.com/…/jvm-options-list.html 18/22
10/08/2010 A Collection of JVM Options
Java Developer Connection Bug Parade

-XX:+UseISM bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Intimate Shared Memory
Big Heaps and Intimate Shared Memory (ISM)
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Java HotSpot VM Options

-XX:+UseLargePages bool 1.6.0


-XX:+UseLargePageSize bool 1.4.0 1.4.1
-XX:+UseLoopCounter bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+UseLWPSynchronization bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Use LWP-based instead of thread based
synchronization. Default is on in J2SE
1.4.0 or higher. (Solaris only)
Java and Solaris Threading
Java HotSpot VM Options

-XX:+UseMaximumCompactionOnSystemGC bool 1.6.0


-XX:+UseMembar bool 1.6.0
-XX:+UseMPSS bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Use Multiple Page Size Support (Solaris
9 only) w/4mb pages for the heap. Do not
use with ISM as this replaces the need
for ISM.
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Java HotSpot VM Options

-XX:+UseNewCode bool 1.6.0


-XX:+UseNewCode2 bool 1.6.0
-XX:+UseNewCode3 bool 1.6.0
-XX:+UseNewFeature1 bool 1.4.2 1.5.0
-XX:+UseNewFeature2 bool 1.4.2 1.5.0
-XX:+UseNewFeature3 bool 1.4.2 1.5.0
-XX:+UseNewFeature4 bool 1.4.2 1.5.0
-XX:+UseNiagaraInstrs bool 1.6.0
-XX:+UseOnStackReplacement bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+UseOversizedCarHandling bool 1.4.0 1.4.1 1.4.2 1.5.0 O


-XX:+UseParallelDensePrefixUpdate bool 1.6.0
-XX:+UseParallelGC bool 1.4.1 1.4.2 1.5.0 1.6.0 This flag also turns on parallel garbage
collection policy in the young generation;
however, it does not work with the CMS
collector in the old generation. It is more
suitable for enterprise applications which
can benefit from very large young
generation heaps.
Garbage Collector Ergonomics
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Turbo-charging Java HotSpot Virtual Machine

-XX:+UseParallelOldGC bool 1.6.0


-XX:+UseParallelOldGCCompacting bool 1.6.0
-XX:+UseParallelOldGCDensePrefix bool 1.6.0
-XX:+UseParallelScavenge bool 1.3.1
Java Developer Connection Forums

-XX:+UseParNewGC bool 1.4.1 1.4.2 1.5.0 1.6.0 This flag turns on parallel garbage
collection in the young generation. It can
be enabled together with the CMS
collector in the old generation. Available
in J2SE1.4.1 on an experimental basis.
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual Machine
Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
Diagnosing a Garbage Collection problem
Turbo-charging Java HotSpot Virtual Machine

blogs.sun.com/…/jvm-options-list.html 19/22
10/08/2010 A Collection of JVM Options
-XX:+UsePerfData bool 1.4.1 1.4.2 1.5.0 1.6.0
1.4.2 HotSpot Instrumentation

-XX:+UsePermISM bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


HotSpot Performance Tuning

-XX:+UsePSAdaptiveSurvivorSizePolicy bool 1.5.0 1.6.0


-XX:+UseRecompilation bool 1.3.1
Java Developer Connection Bug Parade

-XX:+UseResizableSurvivorSpaces bool 1.3.1


-XX:+UseSerialGC bool 1.5.0 1.6.0 Enable the "legacy" serial garbage
collector. The 1.5+ collectors are
generally more robust now, and this
garbage collector will not be supported
much longer
Garbage Collector Ergonomics

-XX:+UseSharedSpaces bool 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:+UseSignalChaining bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:+UseSpecLock bool 1.3.1 1.4.0


Java Developer Connection Bug Parade

-XX:+UseSpinning bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:+UseSplitVerifier bool 1.5.0 1.6.0


-XX:UseSSE=<value> intx 1.5.0 1.6.0 From Bug 5108893, The option probably
indicates whether the compiler should
make use of the processor's SSEi
instructions and is only available in server
VMs.
-XX:+UseStoreImmI16 bool 1.6.0
-XX:+UseSuspendResumeThreadLists bool 1.4.2 1.5.0 1.6.0
-XX:+UseThreadPriorities bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Use native thread priorities
HotSpot Performance Tuning
Java HotSpot VM Options

-XX:+UseTLAB bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0 Turn off thread-local object allocation
Java HotSpot VM Options
Improving Java Application Performance and Scalability by Reducing Garbage Collection Times and Sizing Memory Using JDK 1.4.1
Java and Solaris Threading

-XX:+UseTLE bool 1.3.1 1.6.0 Turn off thread local portions of the heap
in the young generation
Java HotSpot VM Options
Java and Solaris Threading

-XX:+UseTrainGC bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 O


Java Developer Connection Bug Parade

-XX:+UseTypeProfile bool 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0


Java Developer Connection Bug Parade

-XX:+UseUnsupportedDeprecatedJVMPI bool 1.6.0


-XX:+UseVectoredExceptions bool 1.6.0
-XX:+UseVMInterruptibleIO bool 1.6.0
-XX:ValueMapBucketInitialSize=<value> intx 1.4.0
-XX:ValueMapBucketMaxSize=<value> intx 1.4.0
-XX:ValueMapMaxSize=<value> intx 1.4.0
-XX:+VerifyAfterGC bool 1.6.0
Java HotSpot VM Options

-XX:+VerifyAfterScavenge bool
Java HotSpot VM Options

blogs.sun.com/…/jvm-options-list.html 20/22
10/08/2010 A Collection of JVM Options
-XX:+VerifyBeforeExit bool 1.6.0
-XX:+VerifyBeforeGC bool 1.6.0
Java HotSpot VM Options

-XX:+VerifyBeforeIteration bool 1.5.0 1.6.0


-XX:+VerifyBeforeScavenge bool
Java HotSpot VM Options

-XX:+VerifyDuringGC bool 1.6.0


-XX:VerifyGCLevel=<value> intx 1.6.0
-XX:+VerifyMergedCPBytecodes bool 1.6.0
-XX:+VerifyObjectStartArray bool 1.6.0
-XX:+VerifyRememberedSets bool 1.6.0
-XX:+VerifyTLAB bool 1.4.2
Java HotSpot VM Options

-XX:+VerifyTLE bool
Java HotSpot VM Options

-XX:+VMThreadHintNoPreempt bool 1.4.2 1.5.0 1.6.0


-XX:VMThreadPriority=<value> intx 1.4.2 1.5.0 1.6.0
-XX:VMThreadStackSize=<value> intx 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:WorkAroundNPTLTimedWaitHang=<value> intx 1.6.0


-XX:YoungGenerationSizeIncrement=<value> uintx 1.5.0 1.6.0
-XX:YoungGenerationSizeSupplement=<value> uintx 1.5.0 1.6.0
-XX:YoungGenerationSizeSupplementDecay=<value> uintx 1.5.0 1.6.0
-XX:YoungPLABSize=<value> uintx 1.4.1 1.4.2 1.5.0 1.6.0
-XX:+ZeroTLAB bool 1.4.0 1.4.1 1.4.2 1.5.0 1.6.0
Java Developer Connection Bug Parade

-XX:+ZeroTLE bool 1.3.1


Java Developer Connection Bug Parade

References:

1. JVM Performance Documentation


2. Analyzing Stack Traces
3. Turbo-charging Java HotSpot Virtual Machine
4. Java HotSpot VM Options
5. Tuning Garbage Collection with the 1.3.1 Java Virtual Machine
6. Java and Solaris Threading
7. Frequently Asked Questions about Garbage Collection in the HotspotTM JavaTM Virtual
Machine
8. Tuning Garbage Collection with the 1.4.2 Java[tm] Virtual Machine
9. Improving Java Application Performance and Scalability by Reducing Garbage Collection
Times and Sizing Memory Using JDK 1.4.1
10. Big Heaps and Intimate Shared Memory (ISM)
11. A Test of Java Virtual Machine Performance
12. HotSpot Performance Tuning
13. The Java HotSpot Virtual Machine Client Compiler
14. Java Developer Connection Bug Parade
15. SDK release notes 1.3.1.12
16. JavaTM Virtual Machine Profiler Interface (JVMPI)
17. Garbage Collector Ergonomics
18. Java Developer Connection Forums
19. Frequently Asked Questions About the Java HotSpot VM
20. Java HotSpotTM Server VM Version 2.0 for Win32 Platforms
21. J2SE 1.5 in a Nutshell
22. 1.4.2 HotSpot Instrumentation
23. HotSpot Technology Tools and HP-Specific Features
24. Diagnosing a Garbage Collection problem
25. GC Portal
26. HotSpot Performance Tuning
27. Java HotSpot VM Options (docs.sun.com)
28. Java Tuning White Paper

blogs.sun.com/…/jvm-options-list.html 21/22
10/08/2010 A Collection of JVM Options

blogs.sun.com/…/jvm-options-list.html 22/22

Vous aimerez peut-être aussi