Académique Documents
Professionnel Documents
Culture Documents
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.
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.
-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: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
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
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
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
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: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: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
blogs.sun.com/…/jvm-options-list.html 7/22
10/08/2010 A Collection of JVM Options
Java Developer Connection Bug Parade
blogs.sun.com/…/jvm-options-list.html 8/22
10/08/2010 A Collection of JVM Options
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: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: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: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
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: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: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:+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:+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: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:+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:+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
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
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: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:+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
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
blogs.sun.com/…/jvm-options-list.html 16/22
10/08/2010 A Collection of JVM Options
-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:+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:+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:+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:+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:+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:+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:+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:+VerifyTLE bool
Java HotSpot VM Options
References:
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