A Collection of JVM Options
compiled by: Joseph D. Mocker (Sun Microsystems, Inc.) revision: 13.Dec.2005 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 -client -server Type 1.3.1 1.4.0 1.4.1 1.4.2 1.5.0
bool bool bool path path bool bool bool
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
-verbose[:class|gc|jni]
-cp -classpath -version -showversion -fullversion
Use Client Hot option. Use Server Ho option. enable output o specifying opti detailed output set search path resources set search path resources print product v print product v print full java v
-d32 -d64 -ea[:packagename...|:classname] -enableassertions[:packagename...|:classname] -da[:packagename...|:classname] -disableassertions[:packagename...|:classname] -esa -enablesystemassertions -dsa -disablesystemassertions -Dname=value -jre-restrict-search -jre-no-restrict-search -Xt -Xtm -Xbootclasspath[/a|/p]: -Xdebug -Xfuture -Xcheck:jni -Xnoclassgc -Xss
bool bool list list list list bool bool bool bool nv bool bool bool bool list bool bool bool bool size
Y
Y Y Y Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y Y Y Y Y Y
O O Y Y Y Y Y Y
O O Y Y Y Y Y Y
O O Y Y Y Y Y Y
O O Y Y Y Y Y Y
O O Y Y Y Y Y Y
-Xoss
size size size size bool list size bool bool bool bool bool
Y Y Y Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y Y Y Y Y
-Xms -Xmx -Xmn -Xrs -Xrunhprof[:help]|[:option=value, ...] -Xmaxjitcodesize -Xsqnopause -Xoptimize -Xmixed -Xint -Xincgc
use a 32-bit dat use a 64-bit dat enable assertio enable assertio disable assertio disable assertio enable system a enable system a disable system disable system set a system pr include user pr search exclude user pr search turn on instruct turn on method set, append to, enable remote d enable strictest default perform additio disable class ga set maximum n thread set maximum J Note: This opti HotSpot doesn Java stacks. set initial Java set maximum J Size of young g reduce the use perform heap o set the maximu code area do not pause fo SIGQUIT Use optimizing only). Replaced mixed mode ex interpreted mod Incremental GC
-Xconcgc -Xprof -Xaprof -Xloggc: -Xcomp
bool bool path path bool Y Y Y Y Y Y Y
Y Y Y Y Y
Y Y Y Y Y
-Xbatch
bool
Y
Y
Y
Y
-Xconcurrentio
bool
Y
Y
Y
Y
-Xgenconfig
bool
-Xverifyheap
bool
O
O
O
O
-XX:+PrintHeapUsageOverTime
bool
Concurrent GC Y XX:+UseConc beginning with Y Precursor to -X Simple allocati Y only. Log garbage co Y specified file. Forces HotSpo Y code with max Forces HotSpo foreground. No is moved from background pro Y allows allows t continue to run complete. This compiling. The main featu Xconcurrentio synchronizatio synchronizatio Y applications to 1.4, LWP based default, but -Xc since it turns on options. 1.2 option only Verify heap int XX:+VerifyBe XX:+VerifyAf O XX:+VerifyTL XX:+VerifyBe XX:+VerifyAf Print heap usag timestamps
Improving Java Application Performance a Garbage Collection Times and Sizing Mem
-XX:+PrintInlining
bool
Print message a only)
Java HotSpot VM Options
-XX:+DontYieldALotInterval
bool
Interval in mill (debug only)
-XX:+VerifyBeforeGC
Java HotSpot VM Options
bool
Java HotSpot VM Options
-XX:+VerifyAfterGC
bool
Java HotSpot VM Options
-XX:+VerifyTLE
bool
Java HotSpot VM Options
-XX:+VerifyTLAB
bool
Y
Java HotSpot VM Options
-XX:+VerifyBeforeScavenge
bool
Java HotSpot VM Options
-XX:+VerifyAfterScavenge
bool
Java HotSpot VM Options
-XX:+AggressiveHeap
bool
Y
Y
Y
Y
This option ins memory use to more than 3850 each thread is 2 Y management po long as possibl 1.3.1_02) some parallel.
-XX:AdaptivePermSizeWeight= -XX:AdaptiveSizeDecrementScaleFactor= -XX:AdaptiveSizePolicyCollectionCostMargin= -XX:AdaptiveSizePolicyFootprintThreshold= -XX:AdaptiveSizePolicyInitializingSteps= -XX:AdaptiveSizePolicyWeight= -XX:AdaptiveSizeThroughPutPolicy= -XX:AdaptiveTimeWeight= -XX:+AdjustConcurrency
Big Heaps and Intimate Shared Memory (IS Tuning Garbage Collection with the 1.4.2 J
uintx uintx uintx uintx uintx uintx uintx uintx bool Y
Y
Y
Y Y Y
Y Y Y
Y
Y Y Y Y Y Y Y Y Y
HotSpot Performance Tuning
-XX:AliasLevel= -XX:+AllowUserSignalHandlers
intx bool
Y Y
Y Y
Y Y
Y Y
Y Y
Do not compla signal handlers
-XX:AltStackSize=
Java HotSpot VM Options
intx
Y
Y
Y
Y
Alternate signa Solaris Only)
Java HotSpot VM Options
-XX:+AlwaysCompileLoopMethods -XX:+AlwaysTenure -XX:AppendRatio=
bool bool intx bool
Y
Y
Y Y
Y Y
Y Y Y
-XX:+BackgroundCompilation
Y
Y
Y
Y
Enables or disa background. W Y methods are sti compilation is
The Java HotSpot Virtual Machine Client C
-XX:BaseFootPrintEstimate= -XX:+BindGCTaskThreadsToCPUs -XX:+BindScavengeThreads -XX:+BlockOffsetArrayUseUnallocatedBlock -XX:+BytecodeVerificationLocal
uintx bool bool Y bool bool Y
Y Y Y Y
Y Y Y Y
Y Y Y Y
Y
Java Developer Connection Bug Parade
-XX:+BytecodeVerificationRemote
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:CICompilerCount=
intx
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+CICompilerCountPerCPU -XX:+CIDynamicCompilePriority -XX:+CIMaxPriority -XX:+CITime
bool bool bool bool
Y Y Y Y Y Y Y Y
Y
Y
Y Time spent in J
Java HotSpot VM Options
-XX:CMSAbortablePrecleanMinWorkPerIteration= -XX:CMSAbortablePrecleanWaitMillis= -XX:CMSBitMapYieldQuantum= -XX:CMSBootstrapOccupancy=
uintx intx uintx intx bool
Y
Y Y Y Y
-XX:+CMSClassUnloadingEnabled
Y
Y
It has been repo apparently need Y XX:+CMSPerm order to take ef
Java Developer Connection Bug Parade
-XX:+CMSCompactWhenClearAllSoftRefs -XX:CMSDictionaryChoice= -XX:CMSExpAvgFactor=
bool intx uintx
Y Y
Y Y
Y Y
-XX:CMSFullGCsBeforeCompaction=
uintx
Y
Y
Parameter that generation. If a concurrent coll Y between full co full collections on full collectio UseCMSComp
Improving Java Application Performance a Garbage Collection Times and Sizing Mem Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:CMSIncrementalDutyCycle= -XX:CMSIncrementalDutyCycleMin= -XX:+CMSIncrementalMode -XX:CMSIncrementalOffset= -XX:+CMSIncrementalPacing -XX:CMSIncrementalSafetyFactor= -XX:CMSIndexedFreeListReplenish=
uintx uintx bool uintx bool uintx uintx
Y
Y Y Y Y Y Y Y
Y Y Y Y Y Y Y
-XX:CMSInitiatingOccupancyFraction=
intx
Y
Y
Sets the thresho heap in the old CMS collection set to 60, the C every time the full. By default at run time, and triggered only w is about 80-90% improve perfor Y the CMS collec mutators as it s setting this swi free memory is promotion from more data is all Sometimes, if t collection migh may fail, event stop-the-world Available from
Improving Java Application Performance a Garbage Collection Times and Sizing Mem Frequently Asked Questions about Garbage
-XX:+CMSLoopWarn -XX:CMSMarkStackSize= -XX:CMSMarkStackSizeMax= -XX:CMSMaxAbortablePrecleanLoops= -XX:CMSMaxAbortablePrecleanTime= -XX:+CMSNoWarning
JavaTM Virtual Machine Turbo-charging Java HotSpot Virtual Mach
bool uintx uintx uintx intx bool
Y
Y Y
Y Y
Y Y Y Y Y
Y
Y
Java Developer Connection Bug Parade
-XX:+CMSParallelRemarkEnabled
bool
Y
Y
Attempt to des used with -XX:
Tuning Garbage Collection with the 1.4.2 J Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:+CMSPermGenPrecleaningEnabled
bool bool uintx uintx uintx bool bool uintx bool uintx uintx uintx uintx uintx uintx intx intx uintx bool intx bool Y bool bool Y bool Y Y Y Y
Y Y Y Y Y
Y Y Y Y Y
Y
-XX:+CMSPermGenSweepingEnabled
-XX:CMSPrecleanDenominator= -XX:CMSPrecleanIter= -XX:CMSPrecleanNumerator= -XX:+CMSPrecleanRefLists1 -XX:+CMSPrecleanRefLists2 -XX:CMSPrecleanThreshold= -XX:+CMSPrecleaningEnabled -XX:CMSRescanMultiple= -XX:CMSRevisitStackSize= -XX:CMSSamplingGrain= -XX:CMSScheduleRemarkEdenPenetration= -XX:CMSScheduleRemarkEdenSizeThreshold= -XX:CMSScheduleRemarkSamplingRatio= -XX:CMSTriggerRatio= -XX:CMSWaitDuration= -XX:CMSWorkQueueDrainThreshold= -XX:+CMSYield -XX:CMSYieldQuantum= -XX:+CheckJNICalls -XX:+CheckUnsafeOps -XX:+ClassUnloading -XX:+ClipInlining
Y Y
Y Y Y
Y Y Y Y
Y Y Y Y Y Y Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
It has been repo apparently need Y XX:+CMSClas to take effect. Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y Y
-XX:CodeCacheExpansionSize= -XX:CodeCacheMinimumFreeSpace= -XX:+CodeForP6
intx Y uintx Y bool Y
Y Y
Y Y
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:+CollectGen0First -XX:CompilationPolicyChoice= -XX:CompilationRepeat= -XX:CompileCommand=
bool intx intx ccstr
Y Y
Y Y
Y Y Y Y
Y Y Y Y
-XX:CompileCommandFile=
ccstr
Y
Allows you to command files the default beh Y will NOT scan or the current d .hotspot_comp
-XX:CompileOnly= -XX:CompileThreshold=
SDK release notes 1.3.1.12
ccstr intx
Y Y Y Y Y
Y
number of meth Y before (re-)com -client]
Java HotSpot VM Options
-XX:+CompilerThreadHintNoPreempt -XX:CompilerThreadPriority= -XX:CompilerThreadStackSize= -XX:+ConvertSleepToYield -XX:+ConvertYieldToSleep -XX:DefaultInitialRAMFraction= -XX:DefaultMaxRAM= -XX:DefaultMaxRAMFraction= -XX:DefaultThreadPriority= -XX:DefaultTickInterval= -XX:+DefaultUseSpecLock
bool intx intx bool bool uintx uintx uintx intx intx bool
Y Y Y
Y Y Y
Y Y Y
Y Y Y Y Y
Y Y
Y Y
Y
Y Y
Y Y Y Y Y Y Y Y Y Y
Java Developer Connection Bug Parade
-XX:DeferThrSuspendLoopCount= -XX:DelayTickAdjustment= -XX:+DisableExplicitGC
intx intx bool
Y Y Y
Y Y Y
Y Y Y
Y Y Y
Y Y
Disable calls to Y performs garba necessary
Java HotSpot VM Options Tuning Garbage Collection with the 1.4.2 J
-XX:+DisplayVMOutput -XX:+DisplayVMOutputToStderr -XX:+DisplayVMOutputToStdout -XX:+DontCompileHugeMethods -XX:+DontYieldALot
bool bool bool bool bool
Y
Y Y
Y Y
Y Y
Y Y
Y Y Y Y Y
Java Developer Connection Bug Parade
-XX:+DumpSharedSpaces -XX:+EagerInitialization
bool bool
Y Y
Java Developer Connection Bug Parade
-XX:+EagerXrunInit
bool bool
Y Y Y Y Y
Y
-XX:+EnableJVMPIInstructionStartEvent
Enables or disa JVMPI_EVEN Y which is sent w issued by the in
JavaTM Virtual Machine Profiler Interface
-XX:EventLogLength=
intx
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+ExitOnBadLibThread -XX:+FastNMethodDependencies
bool bool
Y
Y
Y Y
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:+FastTLABRefill -XX:+FasterSync -XX:+FilterSpuriousWakeups -XX:FloatCacheThreshold= -XX:+ForceSharedSpaces -XX:+ForceTimeHighResolution
bool bool bool intx bool bool
Y Y Y Y Y Y Y Y Y Y Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+ForceUseSpecLock
bool
Y
Y
Java Developer Connection Bug Parade
-XX:FreqInlineSize=
intx
Y
Y
Y
Y
Integer specify Y bytecode instru executed metho
Java HotSpot VM Options
-XX:+FullSpeedJVMDI
bool
Y
Y
Y
Java Developer Connection Bug Parade
-XX:GCHeapFreeLimit=
uintx
Y
Y
Used with -XX prevent out-ofoccuring during Y parameter spec amount of spac collection in pe (default is 5).
-XX:GCTaskTimeStampEntries=
Garbage Collector Ergonomics
uintx
Y
Y
-XX:GCTimeLimit=
uintx
Y
Y
Used with -XX prevent out-ofoccuring during Y parameter spec amount of time in per cent of to
Garbage Collector Ergonomics
-XX:GCTimeRatio=
uintx
The ratio of GC ratio being: 1 / Y XX:GCTimeR the total time fo
Garbage Collector Ergonomics
-XX:+HandlePromotionFailure -XX:InitialCodeCacheSize=
bool intx
Y
Y
Y
Y
Y Y
Java Developer Connection Bug Parade
-XX:InitialSurvivorRatio=
uintx
Y
Y
Y
Java Developer Connection Bug Parade
-XX:InitialTenuringThreshold= -XX:+Inline
intx bool
Y
Y Y
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:InlineSmallCode= -XX:+InlineUnreachedCalls -XX:+InstallMethods -XX:InterpreterProfilePercentage= -XX:+JVMPICheckGCCompatibility -XX:+JavaMonitorsInStackTrace
intx bool bool intx bool bool
Y Y Y
Y Y
Y Y Y
Y Y Y Y
Y Y Y Y
Y
Y
Useful to displ information ab
Java Developer Connection Forums
-XX:JavaPriority10_To_OSPriority=
intx
Y
Y
-XX:JavaPriority1_To_OSPriority= -XX:JavaPriority2_To_OSPriority=
Java Developer Connection Bug Parade
intx intx
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:JavaPriority3_To_OSPriority=
intx
Y
Y
Java Developer Connection Bug Parade
-XX:JavaPriority4_To_OSPriority=
intx
Y
Y
Java Developer Connection Bug Parade
-XX:JavaPriority5_To_OSPriority=
intx
Y
Y
Java Developer Connection Bug Parade
-XX:JavaPriority6_To_OSPriority=
intx
Y
Y
Java Developer Connection Bug Parade
-XX:JavaPriority7_To_OSPriority=
intx
Y
Y
Java Developer Connection Bug Parade
-XX:JavaPriority8_To_OSPriority=
intx
Y
Y
Java Developer Connection Bug Parade
-XX:JavaPriority9_To_OSPriority=
intx
Y
Y
Java Developer Connection Bug Parade
-XX:+LIRCacheLocals
bool
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+LIRFillDelaySlots -XX:+LIROptimize -XX:+LIROptimizeDeleteOps -XX:+LIROptimizeFloats -XX:+LIROptimizeStack -XX:LargePageHeapSizeThreshold= -XX:LargePageSizeInBytes= -XX:LocalCacheThreshold= -XX:+LogCompilation
bool bool bool bool bool uintx uintx intx bool
Y Y Y Y Y Y Y
Y
Y
Y
Y
Y Y
Y Y Y
Java Developer Connection Bug Parade
-XX:LogFile=
ccstr
Y
Y
Java Developer Connection Bug Parade
-XX:+LogVMOutput
bool
Y
Y
-XX:+ManagementServer -XX:MarkSweepAlwaysCompactCount=
Java Developer Connection Bug Parade
bool intx
Y
Y
Y
Y
Y Y
Java Developer Connection Bug Parade
-XX:MarkSweepDeadRatio=
intx
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:MaxDirectMemorySize=
intx
Y
Y
Java Developer Connection Bug Parade
-XX:+MaxFDLimit
bool
Y
Y
Y
Y
Y
Bump the num max. (Solaris o
Java HotSpot VM Options
-XX:MaxGCMinorPauseMillis=
uintx
Y
-XX:MaxGCPauseMillis=
uintx
A hint to the vi times of nnn m desired. The vm size and other g Y attempt to keep than nnn millis cause the vm to and in some ca meet the desire
Garbage Collector Ergonomics
-XX:MaxHeapFreeRatio=
intx
Y
Y
Y
Y
Y heap free perce
Java HotSpot VM Options Tuning Garbage Collection with the 1.4.2 J HotSpot Performance Tuning
-XX:MaxHeapSize= -XX:MaxInlineLevel=
uintx Y intx Y
Y
Y
Y Y
Y
Java Developer Connection Bug Parade
-XX:MaxInlineSize=
intx
Y
Y
Y
Y
Integer specify Y bytecode instru gets inlined.
Java HotSpot VM Options
-XX:MaxJavaStackTraceDepth=
intx
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:MaxLiveObjectEvacuationRatio=
uintx Y
Y
Y
Y
Y
Java Developer Connection Forums
-XX:MaxNewSize=
uintx Y
Y
Y
Y
Maximum size [32m sparc, 2.5 Y 1.4 as NewRati MaxNewSize]
Frequently Asked Questions About the Jav Turbo-charging Java HotSpot Virtual Mach Java HotSpot VM Options
-XX:MaxPermHeapExpansion= -XX:MaxPermSize=
uintx Y uintx Y
Y Y
Y Y
Y Y
Y Y Size of the Perm
Frequently Asked Questions about Garbage JavaTM Virtual Machine Improving Java Application Performance a Garbage Collection Times and Sizing Mem Java HotSpot VM Options Tuning Garbage Collection with the 1.3.1 J
-XX:MaxRecursiveInlineLevel= -XX:MaxSurvivorShrinkRatio= -XX:MaxTLABRatio= -XX:MaxTLERatio=
intx Y size_t Y uintx Y
Y Y Y Y
-XX:MaxTenuringThreshold=
intx
Y
Y
Y
Y
This switch det objects may ag before getting p generation. The Y big enough you space", the long copied up to 31 spaces before t the old generat
Turbo-charging Java HotSpot Virtual Mach Improving Java Application Performance a Garbage Collection Times and Sizing Mem Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:MaxTickInterval= -XX:MinHeapDeltaBytes= -XX:MinHeapFreeRatio=
intx Y uintx intx Y
Y Y Y
Y Y Y
Y Y Y
Y Y Y heap free perce
Java HotSpot VM Options Tuning Garbage Collection with the 1.4.2 J Tuning Garbage Collection with the 1.3.1 J
-XX:MinOldHeapExpansion= -XX:MinPermHeapExpansion=
size_t Y uintx Y
Y
Y
Y
Y
-XX:MinSurvivorRatio= -XX:MinTLABSize= -XX:MinTickInterval= -XX:NMethodSweepInterval= -XX:NativeSynchronization= -XX:+NeverTenure -XX:NewRatio=
uintx uintx intx Y Y ccstr bool intx Y
Y Y Y
Y Y
Y Y Y Y Y
Y Y Y Y Y
Y Y Y
-XX:NewSize=
uintx Y
Ratio of new/o Y server: 2, sparc intel: 12] Default size of Y [sparc 2.125M,
Frequently Asked Questions about Garbage JavaTM Virtual Machine Tuning Garbage Collection with the 1.4.2 J Frequently Asked Questions About the Jav Java HotSpot VM Options Improving Java Application Performance a Garbage Collection Times and Sizing Mem
-XX:NewSizeThreadIncrease=
uintx Y
Y
Y
Y
As more thread application, the increase with th The number of when adjusting Y after a garbage specifies, in Ki young object sp to accomodate allocation rate.
-XX:NmethodSweepFraction= -XX:OldPLABSize= -XX:OldSize=
Java HotSpotTM Server VM Version 2.0 fo
intx Y uintx uintx Y
Y Y
Y Y Y
Y Y Y
Y Y Y
-XX:OnError=
ccstr
The Hotspot JV hander that can program if the Y can also connec using the Hotsp connector.
J2SE 1.5 in a Nutshell
-XX:OnStackReplacePercentage= -XX:OnStackReplaceThreshold= -XX:+OptimizeSinglePrecision -XX:+OverrideDefaultLibthread
intx Y bool bool Y
Y Y Y
Y
Y
Y
Y
Y
Y On Solaris 9, th
On Solaris 8, J 1.4+ require th alternate thread possible on pre environments.
-XX:OversizedCarThreshold= -XX:ParCMSPromoteBlocksToClaim= -XX:ParGCArrayScanChunk= -XX:ParGCDesiredObjsFromOverflowList= -XX:ParGCMaxArrayAsNormalObject= -XX:ParallelGCBufferWastePct= -XX:ParallelGCG1AllocBufferSize= -XX:ParallelGCOldGenAllocBufferSize= -XX:+ParallelGCRetainPLAB -XX:ParallelGCTermSpinLoopMS= Java Developer Connection Forums Java HotSpot VM Options (docs.sun.com)
uintx intx intx intx intx intx intx intx bool intx
Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y
Y Y Y Y Y Y Y Y Y
-XX:ParallelGCThreads=
uintx
Y
Y
This switch set threads that the performing gar generation. The to the number o However, it ha tweaking this n Y performance in might be that o running on a si this case, the nu for each JVM m than the numbe switch. Availab
-XX:ParallelGCToSpaceAllocBufferSize= -XX:+ParallelGCVerbose -XX:+ParallelRefProcEnabled -XX:+ParkTLE -XX:+PassParametersInRegisters -XX:+PerfAllowAtExitRegistration
Improving Java Application Performance a Garbage Collection Times and Sizing Mem Frequently Asked Questions about Garbage JavaTM Virtual Machine Tuning Garbage Collection with the 1.4.2 J Turbo-charging Java HotSpot Virtual Mach
intx bool bool bool bool bool
Y Y Y Y Y
Y Y
Y Y Y
Y
Y
-XX:+PerfBypassFileSystemCheck -XX:PerfDataMemorySize=
bool intx
Y
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:PerfDataSamplingInterval= -XX:+PerfDataSaveToFile
intx bool
Y Y
Y Y
Y Y
-XX:+PerfDisableSharedMem
bool
Y
Y
Y
1.4.2 HotSpot Instrumentation
-XX:PerfMaxStringConstLength= -XX:PermGenPadding= -XX:PermMarkSweepDeadRatio=
intx uintx intx Y
Y
Y Y Y
Y Y Y
Y Y Y
Java Developer Connection Bug Parade
-XX:PermSize=
uintx Y
Y
Y
Y
Y Initial size of p
Improving Java Application Performance a Garbage Collection Times and Sizing Mem Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:+PostSpinYield -XX:PreBlockSpin= -XX:PreInflateSpin= -XX:+PreSpinYield -XX:+PreferInterpreterNativeStubs -XX:PrefetchCopyIntervalInBytes=
bool intx intx bool bool intx
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y Y
Y Y Y Y Y
Prefetch n byte Y destination area value may vary
HotSpot Technology Tools and HP-Specifi
-XX:PrefetchFieldsAhead= -XX:PrefetchScanIntervalInBytes=
intx intx
Y Y Y
Y Y
Y Y
Y
Prefetch n byte Y area. The defau vary depending
HotSpot Technology Tools and HP-Specifi
-XX:PrefetchScavengeFieldsAhead= -XX:+PreserveAllAnnotations
Y
Prefetch the ne scavenge. The may vary depen
HotSpot Technology Tools and HP-Specifi
bool
Y
-XX:PreserveMarkStackSize= -XX:PretenureSizeThreshold=
uintx uintx
Y Y Y Y Y
Objects size gr allocated in the
Improving Java Application Performance a Garbage Collection Times and Sizing Mem Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:+PrintAdaptiveSizePolicy
bool
Y
Y
Y
Prints informat policy
Improving Java Application Performance a Garbage Collection Times and Sizing Mem
-XX:PrintCMSStatistics=
intx
Y
Y
Y
If > 0, Print sta collections. For Y times the concu young generati of cards preclea
Improving Java Application Performance a Garbage Collection Times and Sizing Mem
-XX:+PrintClassHistogram
bool
Y
-XX:+PrintCommandLineFlags
bool
Prints the all th instance count in the heap. Th need to issue a Xsqnopause) w Y running but wil stdout. Very us memory proble production plat intensive profil Y
Java Developer Connection Bug Parade
-XX:+PrintCompilation
bool
Y
Y
Y
Y
Y traces methods
Java HotSpot VM Options
-XX:PrintFLSCensus=
intx
Y
Y
Y
if > 0, print the lists
Improving Java Application Performance a Garbage Collection Times and Sizing Mem
-XX:PrintFLSStatistics=
intx
Y
Y
Y
If > 0, print sta Y free lists. For e parameter
Improving Java Application Performance a
Garbage Collection Times and Sizing Mem -XX:+PrintGC
bool
Y
Y
Y
Y
Y
Improving Java Application Performance a Garbage Collection Times and Sizing Mem
-XX:+PrintGCApplicationConcurrentTime
bool
Y
Y
Measure the am applications ru
Diagnosing a Garbage Collection problem
-XX:+PrintGCApplicationStoppedTime
bool
Y
Y Measure the len
Diagnosing a Garbage Collection problem
-XX:+PrintGCDetails
bool
Y
Y
Y
Gives some det size of the youn and after GCs, Y takes for a GC generation, size every GC etc.
Tuning Garbage Collection with the 1.4.2 J Improving Java Application Performance a Garbage Collection Times and Sizing Mem Turbo-charging Java HotSpot Virtual Mach Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:+PrintGCTaskTimeStamps -XX:+PrintGCTimeStamps
bool bool
Y Y Y Y
Y Y
Prints the times relative to the s
Turbo-charging Java HotSpot Virtual Mach Improving Java Application Performance a Garbage Collection Times and Sizing Mem GC Portal Tuning Garbage Collection with the 1.4.2 J
-XX:+PrintHeapAtGC
bool
Y
Y
Y
Y
Prints detailed occupancy befo
Improving Java Application Performance a Garbage Collection Times and Sizing Mem
-XX:+PrintJNIResolving -XX:+PrintParScavenge -XX:+PrintScavenge
bool bool bool
Y Y Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+PrintSharedSpaces -XX:+PrintTLAB
bool bool
Y
Y
Y
Y Y trace all the op
Allocation Buf
Improving Java Application Performance a Garbage Collection Times and Sizing Mem Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:+PrintTLE
bool
Y
-XX:+PrintTenuringDistribution
bool
Y
Y
Y
Y
Gives the aging objects in the y XX:NewSize, XX:SurvivorR Y XX:MaxTenur earlier, should the output from that objects are to the old gene
-XX:+PrintVMOptions
Turbo-charging Java HotSpot Virtual Mach Improving Java Application Performance a Garbage Collection Times and Sizing Mem Tuning Garbage Collection with the 1.4.2 J Tuning Garbage Collection with the 1.3.1 J GC Portal
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:ProcessDistributionStride= -XX:ProcessingToTenuringRatio= -XX:+ProfileIntervals
uintx intx Y bool Y
Y Y
Y Y Y
Y Y Y
Y Y Y
Java Developer Connection Bug Parade
-XX:ProfileIntervalsTicks=
intx
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+ProfileVM
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+ProfilerLight -XX:+ProfilerPrintByteCodeStatistics
bool bool
Y Y
Y Y
Y Y
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:+ProfilerRecordPC
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:PromotedPadding=
uintx
Y
Java Developer Connection Bug Parade
-XX:QueuedAllocationWarningCount=
intx
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:ReadSpinIterations=
intx
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+ReduceSignalUsage
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:RefDiscoveryPolicy= -XX:+RequireSharedSpaces -XX:ReservedCodeCacheSize=
intx bool intx
Y
Y
Y Y
Y
Y
Y
Y
Reserved code Y maximum code 1024m]
Java HotSpot VM Options
-XX:+ResizeTLAB
bool
Y
Y
Y
Enable or disab Y server VM has default.
Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:+ResizeTLE
bool
Y
Java Developer Connection Bug Parade
-XX:+RewriteBytecodes
bool
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+RewriteFrequentPairs
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+SafepointPolling
bool
Y
Java Developer Connection Bug Parade
-XX:+ScavengeBeforeFullGC -XX:ScavengeThreads= -XX:SelfDestructTimer=
bool intx
Y Y Y Y Y
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:+SerializeVMOutput
bool
Y
Y
Java Developer Connection Bug Parade
-XX:SharedDummyBlockSize= -XX:SharedMiscDataSize= -XX:SharedReadOnlySize=
uintx uintx uintx
Y Y Y
-XX:SharedReadWriteSize= -XX:+ShowMessageBoxOnError
uintx bool Y
Y
Y
Y
Y Y
Java Developer Connection Bug Parade
-XX:SliceSizeInCards=
Y
-XX:SoftRefLRUPolicyMSPerMB=
intx
Y
Y
Y
Y
Starting with Ja implementation reachable objec amount of time referenced. The Y of lifetime per This value can XX:SoftRefLR which accepts i milliseconds pe
-XX:StackRedPages= -XX:StackShadowPages=
Frequently Asked Questions about Garbage JavaTM Virtual Machine Frequently Asked Questions About the Jav Tuning Garbage Collection with the 1.3.1 J Tuning Garbage Collection with the 1.4.2 J
intx intx
Y
Y
Y
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:+StackTraceInThrowable
bool
Y
Y
Y
Y
Y Enable or disab
The Java HotSpot Virtual Machine Client C
-XX:StackYellowPages= -XX:Stage2CompileThreshold= -XX:+StagedCompilation -XX:StarvationMonitorInterval= -XX:SurvivorPadding= -XX:SurvivorRatio=
intx Y intx bool intx Y uintx intx
Y Y Y Y
Y
Y
Y
Y Y Y
Y Y Y
Y Y
Y
Y
Sets the ratio o Y are two) to the generation.
Turbo-charging Java HotSpot Virtual Mach A Test of Java Virtual Machine Performanc Tuning Garbage Collection with the 1.3.1 J Tuning Garbage Collection with the 1.4.2 J Frequently Asked Questions About the Jav Java HotSpot VM Options Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:TLABAllocationWeight= -XX:TLABFragmentationRatio=
uintx uintx
Y Y Y Y
-XX:TLABRefillWasteFraction= -XX:TLABSize=
uintx uintx
Y
Y
Y
Y Y Set the size of
Java and Solaris Threading
-XX:+TLABStats -XX:TLABThreadRatio=
bool uintx
Y Y Y Y
Java Developer Connection Bug Parade
-XX:TLABWasteIncrement= -XX:TLABWasteTargetPercent= -XX:TLEFragmentationRatio= -XX:TLESize=
uintx uintx Y size_t Y
Y Y
Sets the size of
Java and Solaris Threading
-XX:TLEThreadRatio= -XX:TargetSurvivorOccupationRatio= -XX:TargetSurvivorPadding=
Y
Java Developer Connection Bug Parade
size_t Y size_t Y
-XX:TargetSurvivorRatio=
intx
Y
Y
Y
Y
This flag sets th survivor space before objects a generation. For would mean th Y must be used b considered full the old generat objects to age m before being te 50.
-XX:TenuredGenerationSizeIncrement= -XX:TenuredGenerationSizeSupplement= -XX:TenuredGenerationSizeSupplementDecay= -XX:ThreadPriorityPolicy= -XX:+ThreadPriorityVerbose
Improving Java Application Performance a Garbage Collection Times and Sizing Mem Frequently Asked Questions about Garbage JavaTM Virtual Machine Java HotSpot VM Options
uintx uintx uintx intx bool
Y
Y Y Y Y Y
Java Developer Connection Bug Parade
-XX:ThreadSafetyMargin= -XX:ThreadStackSize=
intx intx
Y
Y
Y
Y
Y Y Thread Stack S
default stack si 256, Sparc 64b
-XX:ThresholdTolerance= -XX:Tier2CompileThreshold= -XX:+TieredCompilation -XX:+TraceClassLoading -XX:+TraceClassLoadingPreorder -XX:+TraceClassResolution -XX:+TraceClassUnloading Java HotSpot VM Options
uintx intx bool bool bool bool bool
Y Y Y Y Y Y
Y Y Y Y Y Y Y
Y Y Y Y
Display classes to -verbose:cla
Y
Y
Y
Y Y Y Display classes
Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:+TraceFailedVMTextSegmentRetarget -XX:+TraceGen0Time -XX:+TraceGen1Time -XX:TraceJVMTI=
bool bool bool ccstr
Y Y Y
Y Y Y
Y Y
Y Y Y
Java Developer Connection Bug Parade
-XX:+TraceJVMTIObjectTagging -XX:TypeProfileFailureLimit= -XX:TypeProfileMinimumRatio= -XX:Ultra3PrefetchCopyIntervalInBytes= -XX:Ultra3PrefetchScanIntervalInBytes= -XX:Ultra3PrefetchScavengeFieldsAhead= -XX:+UnlockDiagnosticVMOptions
bool intx intx Y Y Y bool
Y Y
Y Y
Y Y
Y Y Y
Y
Y
Java Developer Connection Bug Parade
-XX:+Use486InstrsOnly
-XX:+UseAdaptiveGCBoundary XX:+UseAdaptiveGenerationSizePolicyAtMajorCollection bool XX:+UseAdaptiveGenerationSizePolicyAtMinorCollection bool -XX:+UseAdaptiveSizePolicy
bool bool
Y
Y
Y
Y Y Y Y
bool
Y
Y
Automatically Y and chooses an maximize perfo
Garbage Collector Ergonomics Improving Java Application Performance a Garbage Collection Times and Sizing Mem Tuning Garbage Collection with the 1.4.2 J Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:+UseAdaptiveSizePolicyAggressiveFootprintGoal -XX:+UseAdaptiveSizePolicyFootprintGoal -XX:+UseAdaptiveSizePolicyWithSystemGC -XX:+UseAdaptiveSizeScaleFootprintChangeByRatio -XX:+UseAdaptiveSizeScaleThroughputChangeByRatio
bool bool bool bool bool
Y Y Y Y Y
-XX:+UseAltSigs
bool
Y
Y
Y
On the Solaris VM uses SIGU sometimes con Y signal-chain SI will cause the V SIGUSR1 and
Java HotSpot VM Options
-XX:+UseBiasedLocking
bool
This option firs Enables a techn performance of Y synchronizatio significant amo synchronizatio speedups with
Java Tuning White Paper
-XX:+UseBoundThreads
bool
Y
Y
Y
Y
Y Bind user level
A Test of Java Virtual Machine Performanc Java HotSpot VM Options Java and Solaris Threading Frequently Asked Questions About the Jav
-XX:+UseC2CallingConventions
bool
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+UseCMSBestFit -XX:+UseCMSCollectionPassing
bool bool
Y Y
Y Y
Y Y
-XX:+UseCMSCompactAtFullCollection
bool
Y
Y
Normally the c collector does n objects. A garb without moving fragmentation b a larger heap. I Y the tenured gen a compaction o be done althou that compactio UseCMSComp is turned on.
Improving Java Application Performance a
Garbage Collection Times and Sizing Mem Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:+UseCMSInitiatingOccupancyOnly
bool
Y
Y
Used to enable Y anticipated pro collection set
Frequently Asked Questions about Garbage JavaTM Virtual Machine
-XX:+UseCompiler -XX:+UseCompilerSafepoints
bool bool
Y
Y Y
Y Y
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:+UseConcMarkSweepGC
bool
Y
Y
Y
This flag turns Y collection in th from J2SE1.4.1
Improving Java Application Performance a Garbage Collection Times and Sizing Mem Frequently Asked Questions about Garbage JavaTM Virtual Machine Tuning Garbage Collection with the 1.4.2 J Turbo-charging Java HotSpot Virtual Mach Java HotSpot VM Options
-XX:+UseDefaultStackSize -XX:+UseFastAccessorMethods
bool bool
Y Y
Y Y
Y Y
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:+UseFastEmptyMethods
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+UseFastJNIAccessors
bool
Y
Java Developer Connection Bug Parade
-XX:+UseFixedFrameSize
bool
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+UseForcedSuspension
bool
Y
Y
Java Developer Connection Bug Parade
-XX:+UseGCTaskAffinity -XX:+UseHeavyMonitors
bool bool
Y
Y
Y Y
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:+UseISM
bool
Y
Y
Y
Y
Y Intimate Shared
Big Heaps and Intimate Shared Memory (IS
-XX:+UseInterpreter
Improving Java Application Performance a Garbage Collection Times and Sizing Mem Java HotSpot VM Options
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+UseLWPSynchronization
bool
Y
Y
Y
Y
Use LWP-base Y synchronizatio or higher. (Sola
Java and Solaris Threading Java HotSpot VM Options
-XX:+UseLargePageSize -XX:+UseLoopCounter
bool bool
Y
Y Y
Y Y
Y
Y
Java Developer Connection Bug Parade
-XX:+UseMPSS
bool
Y
Y
Y
Use Multiple P Y only) w/4mb pa with ISM as th
Improving Java Application Performance a Garbage Collection Times and Sizing Mem Java HotSpot VM Options
-XX:+UseNewFeature1 -XX:+UseNewFeature2 -XX:+UseNewFeature3 -XX:+UseNewFeature4 -XX:+UseOnStackReplacement
bool bool bool bool bool
Y
Y
Y
Y Y Y Y Y
Y Y Y Y Y
Java Developer Connection Bug Parade
-XX:+UseOversizedCarHandling -XX:+UsePSAdaptiveSurvivorSizePolicy
bool bool
Y
Y
Y
Y Y
-XX:+UseParNewGC
bool
Y
Y
This flag turns collection in th Y enabled togethe the old generat on an experime
Improving Java Application Performance a Garbage Collection Times and Sizing Mem Frequently Asked Questions about Garbage JavaTM Virtual Machine Tuning Garbage Collection with the 1.4.2 J Diagnosing a Garbage Collection problem Turbo-charging Java HotSpot Virtual Mach
-XX:+UseParallelGC
bool
Y
Y
Y This flag also t
collection polic however, it doe collector in the suitable for ent can benefit from generation heap
-XX:+UseParallelScavenge
Garbage Collector Ergonomics Frequently Asked Questions about Garbage JavaTM Virtual Machine Improving Java Application Performance a Garbage Collection Times and Sizing Mem Tuning Garbage Collection with the 1.4.2 J Turbo-charging Java HotSpot Virtual Mach
bool
Y
Java Developer Connection Forums
-XX:+UsePerfData
bool
Y
Y
Y
1.4.2 HotSpot Instrumentation
-XX:+UsePermISM
bool
Y
Y
Y
Y
Y
HotSpot Performance Tuning
-XX:+UseRecompilation
bool
Y
Java Developer Connection Bug Parade
-XX:+UseResizableSurvivorSpaces
bool bool
Y
-XX:+UseSerialGC
Enable the "leg collector. The 1 Y more robust no will not be sup
Garbage Collector Ergonomics
-XX:+UseSharedSpaces
bool
Y
Java Developer Connection Bug Parade
-XX:+UseSignalChaining
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+UseSpecLock
bool
Y
Y
Java Developer Connection Bug Parade
-XX:+UseSpinning
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+UseSplitVerifier
bool
Y
-XX:UseSSE=
intx bool bool
-XX:+UseSuspendResumeThreadLists -XX:+UseTLAB
Y
Y
Y Y
From Bug 5108 indicates wheth Y use of the proc is only availabl Y Y Turn off thread
Java HotSpot VM Options Improving Java Application Performance a Garbage Collection Times and Sizing Mem Java and Solaris Threading
-XX:+UseTLE
bool
Y
Turn off thread the young gene
Java HotSpot VM Options Java and Solaris Threading
-XX:+UseThreadPriorities
bool
Y
Y
Y
Y
Y Use native thre
HotSpot Performance Tuning Java HotSpot VM Options
-XX:+UseTrainGC
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+UseTypeProfile
bool
Y
Y
Y
Y
Y
Java Developer Connection Bug Parade
-XX:+VMThreadHintNoPreempt -XX:VMThreadPriority= -XX:VMThreadStackSize=
bool intx intx
Y
Y
Y
Y Y Y
Y Y Y
Java Developer Connection Bug Parade
-XX:ValueMapBucketInitialSize= -XX:ValueMapBucketMaxSize= -XX:ValueMapMaxSize= -XX:+VerifyBeforeIteration -XX:YoungGenerationSizeIncrement= -XX:YoungGenerationSizeSupplement= -XX:YoungGenerationSizeSupplementDecay= -XX:YoungPLABSize= -XX:+ZeroTLAB
intx intx intx bool uintx uintx uintx uintx bool
Y Y Y Y Y Y Y Y Y
Y
Y Y
Y Y
Java Developer Connection Bug Parade
-XX:+ZeroTLE
bool
Y
Java Developer Connection Bug Parade
References: 1. 2. 3. 4. 5. 6. 7. JVM Performance Documentation Analyzing Stack Traces Turbo-charging Java HotSpot Virtual Machine Java HotSpot VM Options Tuning Garbage Collection with the 1.3.1 Java Virtual Machine Java and Solaris Threading 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