Java 21, the next long-term support (LTS) release of the JDK, arrives in September 2021. To commemorate, let’s look at 21 of the most important JVM options and parameters you can configure in your Java environment
Java JVM options list
Here are the 21 most important Java JVM options developers can use to configure the JDK at runtime:
- -Xms sets the initial heap size for the JVM.
- -Xmx sets the maximum heap size for the JVM.
- -Xss sets the size of the thread stack for each thread’s internal use.
- -XX:+UseCompressedOops enables the use of compressed object pointers to reduce memory usage.
- -XX:+UseThreadPriorities instructs the JVM to use native thread priorities.
- -XX:PermSize sets the initial size of the garbage collector’s Permanent Generation space.
- -XX:MaxPermSize sets the maximum size of the garbage collector’s permanent generation space.
- -XX:NewSize sets the initial size of the Young Generation space.
- -XX:MaxNewSize sets the maximum size of the Young Generation space.
- -XX:SurvivorRatio sets the ratio of Eden space to Survivor space.
- -XX:MaxTenuringThreshold sets the maximum age for objects in the Survivor space.
- -XX:+UseParNewGC instructs the JVM to use the new parallel generation garbage collector.
- -XX:+UseSerialGC instructs the JVM to use the serial garbage collector.
- -XX:+UseG1GC instructs the JVM to use the Garbage First (G1) garbage collector.
- -XX:+UseZGC instructs the JVM to use the ZGC garbage collector.
- -XX:+HeapDumpOnOutOfMemoryError tells the JVM to create a heap dump file when an OutOfMemoryError occurs.
- -XX:HeapDumpPath provides a custom path for the JVM to write the contents of the heap during a heap dump.
- -Djava.library.path enables you to specifiy paths to native libraries needed at runtime.
- -Duser.timezone enables you to set a custom timezone for the JVM.
- -XX:+PrintGCDetails instructs the JVM to print out detailed garbage collection logs to help you with GC optimization.
- -XX:+PrintFlagsFinal -version prints out all of the currently configured flags and options set on your JVM.
How to use Java JVM options
To use any of these JVM options, simply append them as text after the java runtime command.
For example, the following command runs an app called Go with six different parameter sizes to optimize for memory allocation and garbage collection:
java Go -XX:MaxPermSize=128m -XX:MaxNewSize=256m -Xms768m -Xmx768m -XX:SurvivorRatio=128 -XX:MaxTenuringThreshold=0
Use Java JVM options to manage memory and optimize GC performance.
Most commonly used JVM parameters
Of all the JVM options listed above, the most commonly used are Xms and Xmx, which set the minimum and maximum heap size, respectively.
The following example sets the minimum heap size to 768 MB and the maximum to 2 GB.
-Xms768m
-Xmx2048GC selection JVM options
One of the benefits of Java is that the environment performs garbage collection for the developer, which makes applications more robust and less likely to suffer memory leaks.
There are a number of garbage collectors out there with various pause behaviors and stop-the-world downtimes.
When the runtime is started, you can only pick one with one of the following Java JVM options:
-XX:+UseSerialGC
-XX:+UseParallelGC
-XX:+USeParNewGC
-XX:+UseG1GC
-XX:+UseZGCGarbage collection tuning options
The JVM implements a generational garbage collection algorithm that actively monitors new objects while it rarely checks on older ones. The manner in which the JVM manages the Eden space, the Tenured space and even the PermGen space can be configured through JVM options as follows:
-XX:MaxPermSize
-XX:PermSize
-XX:NewSize
-XX:MaxNewSize
-XX:SurvivorRatio
-XX:MaxTenuringThresholdJVM print options for inspection
The JVM also provides a number of print methods that simply allow you to view the status of the Java runtime. Helpful JVM print options include the following:
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintHeapAtGC
-XX:+PrintCommandLineFlags
-XX:+PrintFlagsFinalThe PrintFlagsFinal JVM option is interesting, as it displays all of the flag settings for your JVM, which is over 500 lines of output.
This article on Java JVM options is complete, so don’t feel the need to read on any further. However, for those interested in the extensive output of the PrintFlagsFinal JVM flag, I will leave curious readers with the printout below.
<span style="color: #003366"><span style="color: #993300">$</span> <span style="color: #800000">java -XX:+PrintFlagsFinal -version</span></span>
<span style="color: #003366">[Global flags]</span>
<span style="color: #003366">int ActiveProcessorCount = -1</span>
<span style="color: #003366">uintx AdaptiveSizeDecrementScaleFactor = 4</span>
<span style="color: #003366">uintx AdaptiveSizeMajorGCDecayTimeScale = 10</span>
<span style="color: #003366">uintx AdaptiveSizePolicyCollectionCostMargin = 50</span>
<span style="color: #003366">uintx AdaptiveSizePolicyInitializingSteps = 20</span>
<span style="color: #003366">uintx AdaptiveSizePolicyOutputInterval = 0</span>
<span style="color: #003366">uintx AdaptiveSizePolicyWeight = 10</span>
<span style="color: #003366">uintx AdaptiveSizeThroughPutPolicy = 0</span>
<span style="color: #003366">uintx AdaptiveTimeWeight = 25</span>
<span style="color: #003366">bool AggressiveHeap = false</span>
<span style="color: #003366">intx AliasLevel = 3</span>
<span style="color: #003366">bool AlignVector = false</span>
<span style="color: #003366">ccstr AllocateHeapAt =</span>
<span style="color: #003366">intx AllocateInstancePrefetchLines = 1</span>
<span style="color: #003366">intx AllocatePrefetchDistance = 256</span>
<span style="color: #003366">intx AllocatePrefetchInstr = 0</span>
<span style="color: #003366">intx AllocatePrefetchLines = 3</span>
<span style="color: #003366">intx AllocatePrefetchStepSize = 64</span>
<span style="color: #003366">intx AllocatePrefetchStyle = 1</span>
<span style="color: #003366">bool AllowParallelDefineClass = false</span>
<span style="color: #003366">bool AllowRedefinitionToAddDeleteMethods = false</span>
<span style="color: #003366">bool AllowUserSignalHandlers = false</span>
<span style="color: #003366">bool AllowVectorizeOnDemand = true</span>
<span style="color: #003366">bool AlwaysActAsServerClassMachine = false</span>
<span style="color: #003366">bool AlwaysCompileLoopMethods = false</span>
<span style="color: #003366">bool AlwaysLockClassLoader = false</span>
<span style="color: #003366">bool AlwaysPreTouch = false</span>
<span style="color: #003366">bool AlwaysRestoreFPU = false</span>
<span style="color: #003366">bool AlwaysTenure = false</span>
<span style="color: #003366">ccstr ArchiveClassesAtExit =</span>
<span style="color: #003366">intx ArrayCopyLoadStoreMaxElem = 8</span>
<span style="color: #003366">size_t AsyncLogBufferSize = 2097152</span>
<span style="color: #003366">intx AutoBoxCacheMax = 128</span>
<span style="color: #003366">intx BCEATraceLevel = 0</span>
<span style="color: #003366">bool BackgroundCompilation = true</span>
<span style="color: #003366">size_t BaseFootPrintEstimate = 268435456</span>
<span style="color: #003366">intx BiasedLockingBulkRebiasThreshold = 20</span>
<span style="color: #003366">intx BiasedLockingBulkRevokeThreshold = 40</span>
<span style="color: #003366">intx BiasedLockingDecayTime = 25000</span>
<span style="color: #003366">intx BiasedLockingStartupDelay = 0</span>
<span style="color: #003366">bool BlockLayoutByFrequency = true</span>
<span style="color: #003366">intx BlockLayoutMinDiamondPercentage = 20</span>
<span style="color: #003366">bool BlockLayoutRotateLoops = true</span>
<span style="color: #003366">intx C1InlineStackLimit = 5</span>
<span style="color: #003366">intx C1MaxInlineLevel = 9</span>
<span style="color: #003366">intx C1MaxInlineSize = 35</span>
<span style="color: #003366">intx C1MaxRecursiveInlineLevel = 1</span>
<span style="color: #003366">intx C1MaxTrivialSize = 6</span>
<span style="color: #003366">bool C1OptimizeVirtualCallProfiling = true</span>
<span style="color: #003366">bool C1ProfileBranches = true</span>
<span style="color: #003366">bool C1ProfileCalls = true</span>
<span style="color: #003366">bool C1ProfileCheckcasts = true</span>
<span style="color: #003366">bool C1ProfileInlinedCalls = true</span>
<span style="color: #003366">bool C1ProfileVirtualCalls = true</span>
<span style="color: #003366">bool C1UpdateMethodData = true</span>
<span style="color: #003366">intx CICompilerCount = 4</span>
<span style="color: #003366">bool CICompilerCountPerCPU = true</span>
<span style="color: #003366">bool CITime = false</span>
<span style="color: #003366">bool CheckJNICalls = false</span>
<span style="color: #003366">bool ClassUnloading = true</span>
<span style="color: #003366">bool ClassUnloadingWithConcurrentMark = true</span>
<span style="color: #003366">bool ClipInlining = true</span>
<span style="color: #003366">uintx CodeCacheExpansionSize = 65536</span>
<span style="color: #003366">bool CompactStrings = true</span>
<span style="color: #003366">ccstr CompilationMode = default</span>
<span style="color: #003366">ccstrlist CompileCommand =</span>
<span style="color: #003366">ccstr CompileCommandFile =</span>
<span style="color: #003366">ccstrlist CompileOnly =</span>
<span style="color: #003366">intx CompileThreshold = 10000</span>
<span style="color: #003366">double CompileThresholdScaling = 1.000000</span>
<span style="color: #003366">intx CompilerThreadPriority = -1</span>
<span style="color: #003366">intx CompilerThreadStackSize = 0</span>
<span style="color: #003366">size_t CompressedClassSpaceSize = 1073741824</span>
<span style="color: #003366">uint ConcGCThreads = 3</span>
<span style="color: #003366">intx ConditionalMoveLimit = 3</span>
<span style="color: #003366">intx ContendedPaddingWidth = 128</span>
<span style="color: #003366">bool CrashOnOutOfMemoryError = false</span>
<span style="color: #003366">bool CreateCoredumpOnCrash = true</span>
<span style="color: #003366">bool CriticalJNINatives = false</span>
<span style="color: #003366">bool DTraceAllocProbes = false</span>
<span style="color: #003366">bool DTraceMethodProbes = false</span>
<span style="color: #003366">bool DTraceMonitorProbes = false</span>
<span style="color: #003366">bool DisableAttachMechanism = false</span>
<span style="color: #003366">bool DisableExplicitGC = false</span>
<span style="color: #003366">bool DisplayVMOutputToStderr = false</span>
<span style="color: #003366">bool DisplayVMOutputToStdout = false</span>
<span style="color: #003366">bool DoEscapeAnalysis = true</span>
<span style="color: #003366">bool DoReserveCopyInSuperWord = true</span>
<span style="color: #003366">bool DontCompileHugeMethods = true</span>
<span style="color: #003366">bool DontYieldALot = false</span>
<span style="color: #003366">ccstr DumpLoadedClassList =</span>
<span style="color: #003366">bool DumpReplayDataOnError = true</span>
<span style="color: #003366">bool DumpSharedSpaces = false</span>
<span style="color: #003366">bool DynamicDumpSharedSpaces = false</span>
<span style="color: #003366">bool EagerXrunInit = false</span>
<span style="color: #003366">intx EliminateAllocationArraySizeLimit = 64</span>
<span style="color: #003366">bool EliminateAllocations = true</span>
<span style="color: #003366">bool EliminateAutoBox = true</span>
<span style="color: #003366">bool EliminateLocks = true</span>
<span style="color: #003366">bool EliminateNestedLocks = true</span>
<span style="color: #003366">bool EnableContended = true</span>
<span style="color: #003366">bool EnableDynamicAgentLoading = true</span>
<span style="color: #003366">size_t ErgoHeapSizeLimit = 0</span>
<span style="color: #003366">ccstr ErrorFile =</span>
<span style="color: #003366">bool ErrorFileToStderr = false</span>
<span style="color: #003366">bool ErrorFileToStdout = false</span>
<span style="color: #003366">uint64_t ErrorLogTimeout = 120</span>
<span style="color: #003366">double EscapeAnalysisTimeout = 20.000000</span>
<span style="color: #003366">bool EstimateArgEscape = true</span>
<span style="color: #003366">bool ExecutingUnitTests = false</span>
<span style="color: #003366">bool ExitOnOutOfMemoryError = false</span>
<span style="color: #003366">bool ExplicitGCInvokesConcurrent = false</span>
<span style="color: #003366">bool ExtendedDTraceProbes = false</span>
<span style="color: #003366">bool ExtensiveErrorReports = false</span>
<span style="color: #003366">ccstr ExtraSharedClassListFile =</span>
<span style="color: #003366">bool FilterSpuriousWakeups = true</span>
<span style="color: #003366">bool FlightRecorder = false</span>
<span style="color: #003366">ccstr FlightRecorderOptions =</span>
<span style="color: #003366">bool ForceTimeHighResolution = false</span>
<span style="color: #003366">intx FreqInlineSize = 325</span>
<span style="color: #003366">double G1ConcMarkStepDurationMillis = 10.000000</span>
<span style="color: #003366">uintx G1ConcRSHotCardLimit = 4</span>
<span style="color: #003366">size_t G1ConcRSLogCacheSize = 10</span>
<span style="color: #003366">size_t G1ConcRefinementGreenZone = 0</span>
<span style="color: #003366">size_t G1ConcRefinementRedZone = 0</span>
<span style="color: #003366">uintx G1ConcRefinementServiceIntervalMillis = 300</span>
<span style="color: #003366">uint G1ConcRefinementThreads = 10</span>
<span style="color: #003366">size_t G1ConcRefinementThresholdStep = 2</span>
<span style="color: #003366">size_t G1ConcRefinementYellowZone = 0</span>
<span style="color: #003366">uintx G1ConfidencePercent = 50</span>
<span style="color: #003366">size_t G1HeapRegionSize = 2097152</span>
<span style="color: #003366">uintx G1HeapWastePercent = 5</span>
<span style="color: #003366">uintx G1MixedGCCountTarget = 8</span>
<span style="color: #003366">uintx G1PeriodicGCInterval = 0</span>
<span style="color: #003366">bool G1PeriodicGCInvokesConcurrent = true</span>
<span style="color: #003366">double G1PeriodicGCSystemLoadThreshold = 0.000000</span>
<span style="color: #003366">intx G1RSetRegionEntries = 512</span>
<span style="color: #003366">intx G1RSetSparseRegionEntries = 16</span>
<span style="color: #003366">intx G1RSetUpdatingPauseTimePercent = 10</span>
<span style="color: #003366">uint G1RefProcDrainInterval = 1000</span>
<span style="color: #003366">uintx G1ReservePercent = 10</span>
<span style="color: #003366">uintx G1SATBBufferEnqueueingThresholdPercent = 60</span>
<span style="color: #003366">size_t G1SATBBufferSize = 1024</span>
<span style="color: #003366">size_t G1UpdateBufferSize = 256</span>
<span style="color: #003366">bool G1UseAdaptiveConcRefinement = true</span>
<span style="color: #003366">bool G1UseAdaptiveIHOP = true</span>
<span style="color: #003366">uintx GCDrainStackTargetSize = 64</span>
<span style="color: #003366">uintx GCHeapFreeLimit = 2</span>
<span style="color: #003366">uintx GCLockerEdenExpansionPercent = 5</span>
<span style="color: #003366">uintx GCPauseIntervalMillis = 201</span>
<span style="color: #003366">uintx GCTimeLimit = 98</span>
<span style="color: #003366">uintx GCTimeRatio = 12</span>
<span style="color: #003366">size_t HeapBaseMinAddress = 2147483648</span>
<span style="color: #003366">bool HeapDumpAfterFullGC = false</span>
<span style="color: #003366">bool HeapDumpBeforeFullGC = false</span>
<span style="color: #003366">intx HeapDumpGzipLevel = 0</span>
<span style="color: #003366">bool HeapDumpOnOutOfMemoryError = false</span>
<span style="color: #003366">ccstr HeapDumpPath =</span>
<span style="color: #003366">uintx HeapFirstMaximumCompactionCount = 3</span>
<span style="color: #003366">uintx HeapMaximumCompactionInterval = 20</span>
<span style="color: #003366">uintx HeapSearchSteps = 3</span>
<span style="color: #003366">size_t HeapSizePerGCThread = 43620760</span>
<span style="color: #003366">bool IgnoreEmptyClassPaths = false</span>
<span style="color: #003366">bool IgnoreUnrecognizedVMOptions = false</span>
<span style="color: #003366">uintx IncreaseFirstTierCompileThresholdAt = 50</span>
<span style="color: #003366">bool IncrementalInline = true</span>
<span style="color: #003366">uintx InitialCodeCacheSize = 2555904</span>
<span style="color: #003366">size_t InitialHeapSize = 268435456</span>
<span style="color: #003366">uintx InitialRAMFraction = 64</span>
<span style="color: #003366">double InitialRAMPercentage = 1.562500</span>
<span style="color: #003366">uintx InitialSurvivorRatio = 8</span>
<span style="color: #003366">uintx InitialTenuringThreshold = 7</span>
<span style="color: #003366">uintx InitiatingHeapOccupancyPercent = 45</span>
<span style="color: #003366">bool Inline = true</span>
<span style="color: #003366">ccstr InlineDataFile =</span>
<span style="color: #003366">intx InlineSmallCode = 2500</span>
<span style="color: #003366">bool InlineSynchronizedMethods = true</span>
<span style="color: #003366">intx InteriorEntryAlignment = 16</span>
<span style="color: #003366">intx InterpreterProfilePercentage = 33</span>
<span style="color: #003366">bool JavaMonitorsInStackTrace = true</span>
<span style="color: #003366">intx JavaPriority10_To_OSPriority = -1</span>
<span style="color: #003366">intx JavaPriority1_To_OSPriority = -1</span>
<span style="color: #003366">intx JavaPriority2_To_OSPriority = -1</span>
<span style="color: #003366">intx JavaPriority3_To_OSPriority = -1</span>
<span style="color: #003366">intx JavaPriority4_To_OSPriority = -1</span>
<span style="color: #003366">intx JavaPriority5_To_OSPriority = -1</span>
<span style="color: #003366">intx JavaPriority6_To_OSPriority = -1</span>
<span style="color: #003366">intx JavaPriority7_To_OSPriority = -1</span>
<span style="color: #003366">intx JavaPriority8_To_OSPriority = -1</span>
<span style="color: #003366">intx JavaPriority9_To_OSPriority = -1</span>
<span style="color: #003366">size_t LargePageHeapSizeThreshold = 134217728</span>
<span style="color: #003366">size_t LargePageSizeInBytes = 0</span>
<span style="color: #003366">intx LiveNodeCountInliningCutoff = 40000</span>
<span style="color: #003366">intx LoopMaxUnroll = 16</span>
<span style="color: #003366">intx LoopOptsCount = 43</span>
<span style="color: #003366">intx LoopPercentProfileLimit = 10</span>
<span style="color: #003366">uintx LoopStripMiningIter = 1000</span>
<span style="color: #003366">uintx LoopStripMiningIterShortLoop = 100</span>
<span style="color: #003366">intx LoopUnrollLimit = 60</span>
<span style="color: #003366">intx LoopUnrollMin = 4</span>
<span style="color: #003366">bool LoopUnswitching = true</span>
<span style="color: #003366">bool ManagementServer = false</span>
<span style="color: #003366">size_t MarkStackSize = 4194304</span>
<span style="color: #003366">size_t MarkStackSizeMax = 536870912</span>
<span style="color: #003366">uint MarkSweepAlwaysCompactCount = 4</span>
<span style="color: #003366">uintx MarkSweepDeadRatio = 5</span>
<span style="color: #003366">intx MaxBCEAEstimateLevel = 5</span>
<span style="color: #003366">intx MaxBCEAEstimateSize = 150</span>
<span style="color: #003366">uint64_t MaxDirectMemorySize = 0</span>
<span style="color: #003366">bool MaxFDLimit = true</span>
<span style="color: #003366">uintx MaxGCMinorPauseMillis = 18446744073709551615</span>
<span style="color: #003366">uintx MaxGCPauseMillis = 200</span>
<span style="color: #003366">uintx MaxHeapFreeRatio = 70</span>
<span style="color: #003366">size_t MaxHeapSize = 4282384384</span>
<span style="color: #003366">intx MaxInlineLevel = 15</span>
<span style="color: #003366">intx MaxInlineSize = 35</span>
<span style="color: #003366">intx MaxJNILocalCapacity = 65536</span>
<span style="color: #003366">intx MaxJavaStackTraceDepth = 1024</span>
<span style="color: #003366">intx MaxJumpTableSize = 65000</span>
<span style="color: #003366">intx MaxJumpTableSparseness = 5</span>
<span style="color: #003366">intx MaxLabelRootDepth = 1100</span>
<span style="color: #003366">intx MaxLoopPad = 15</span>
<span style="color: #003366">size_t MaxMetaspaceExpansion = 5439488</span>
<span style="color: #003366">uintx MaxMetaspaceFreeRatio = 70</span>
<span style="color: #003366">size_t MaxMetaspaceSize = 18446744073709551615</span>
<span style="color: #003366">size_t MaxNewSize = 2569011200</span>
<span style="color: #003366">intx MaxNodeLimit = 80000</span>
<span style="color: #003366">uint64_t MaxRAM = 137438953472</span>
<span style="color: #003366">uintx MaxRAMFraction = 4</span>
<span style="color: #003366">double MaxRAMPercentage = 25.000000</span>
<span style="color: #003366">intx MaxRecursiveInlineLevel = 1</span>
<span style="color: #003366">uintx MaxTenuringThreshold = 15</span>
<span style="color: #003366">intx MaxTrivialSize = 6</span>
<span style="color: #003366">intx MaxVectorSize = 32</span>
<span style="color: #003366">ccstr MetaspaceReclaimPolicy = balanced</span>
<span style="color: #003366">size_t MetaspaceSize = 22020096</span>
<span style="color: #003366">bool MethodFlushing = true</span>
<span style="color: #003366">size_t MinHeapDeltaBytes = 2097152</span>
<span style="color: #003366">uintx MinHeapFreeRatio = 40</span>
<span style="color: #003366">size_t MinHeapSize = 8388608</span>
<span style="color: #003366">intx MinInliningThreshold = 250</span>
<span style="color: #003366">intx MinJumpTableSize = 10</span>
<span style="color: #003366">size_t MinMetaspaceExpansion = 327680</span>
<span style="color: #003366">uintx MinMetaspaceFreeRatio = 40</span>
<span style="color: #003366">uintx MinRAMFraction = 2</span>
<span style="color: #003366">double MinRAMPercentage = 50.000000</span>
<span style="color: #003366">uintx MinSurvivorRatio = 3</span>
<span style="color: #003366">size_t MinTLABSize = 2048</span>
<span style="color: #003366">intx MultiArrayExpandLimit = 6</span>
<span style="color: #003366">uintx NUMAChunkResizeWeight = 20</span>
<span style="color: #003366">size_t NUMAInterleaveGranularity = 2097152</span>
<span style="color: #003366">uintx NUMAPageScanRate = 256</span>
<span style="color: #003366">size_t NUMASpaceResizeRate = 1073741824</span>
<span style="color: #003366">bool NUMAStats = false</span>
<span style="color: #003366">ccstr NativeMemoryTracking = off</span>
<span style="color: #003366">bool NeverActAsServerClassMachine = false</span>
<span style="color: #003366">bool NeverTenure = false</span>
<span style="color: #003366">uintx NewRatio = 2</span>
<span style="color: #003366">size_t NewSize = 1363144</span>
<span style="color: #003366">size_t NewSizeThreadIncrease = 5320</span>
<span style="color: #003366">intx NmethodSweepActivity = 10</span>
<span style="color: #003366">intx NodeLimitFudgeFactor = 2000</span>
<span style="color: #003366">uintx NonNMethodCodeHeapSize = 5839372</span>
<span style="color: #003366">uintx NonProfiledCodeHeapSize = 122909434</span>
<span style="color: #003366">intx NumberOfLoopInstrToAlign = 4</span>
<span style="color: #003366">intx ObjectAlignmentInBytes = 8 {</span>
<span style="color: #003366">size_t OldPLABSize = 1024</span>
<span style="color: #003366">size_t OldSize = 5452592</span>
<span style="color: #003366">bool OmitStackTraceInFastThrow = true</span>
<span style="color: #003366">ccstrlist OnError =</span>
<span style="color: #003366">ccstrlist OnOutOfMemoryError =</span>
<span style="color: #003366">intx OnStackReplacePercentage = 140</span>
<span style="color: #003366">bool OptimizeFill = false</span>
<span style="color: #003366">bool OptimizePtrCompare = true</span>
<span style="color: #003366">bool OptimizeStringConcat = true</span>
<span style="color: #003366">bool OptoBundling = false</span>
<span style="color: #003366">intx OptoLoopAlignment = 16</span>
<span style="color: #003366">bool OptoRegScheduling = true</span>
<span style="color: #003366">bool OptoScheduling = false</span>
<span style="color: #003366">uintx PLABWeight = 75</span>
<span style="color: #003366">bool PSChunkLargeArrays = true</span>
<span style="color: #003366">int ParGCArrayScanChunk = 50</span>
<span style="color: #003366">uintx ParallelGCBufferWastePct = 10</span>
<span style="color: #003366">uint ParallelGCThreads = 10</span>
<span style="color: #003366">size_t ParallelOldDeadWoodLimiterMean = 50</span>
<span style="color: #003366">size_t ParallelOldDeadWoodLimiterStdDev = 80</span>
<span style="color: #003366">bool ParallelRefProcBalancingEnabled = true</span>
<span style="color: #003366">bool ParallelRefProcEnabled = true</span>
<span style="color: #003366">bool PartialPeelAtUnsignedTests = true</span>
<span style="color: #003366">bool PartialPeelLoop = true</span>
<span style="color: #003366">intx PartialPeelNewPhiDelta = 0</span>
<span style="color: #003366">uintx PausePadding = 1</span>
<span style="color: #003366">intx PerBytecodeRecompilationCutoff = 200</span>
<span style="color: #003366">intx PerBytecodeTrapLimit = 4</span>
<span style="color: #003366">intx PerMethodRecompilationCutoff = 400</span>
<span style="color: #003366">intx PerMethodTrapLimit = 100</span>
<span style="color: #003366">bool PerfAllowAtExitRegistration = false</span>
<span style="color: #003366">bool PerfBypassFileSystemCheck = false</span>
<span style="color: #003366">intx PerfDataMemorySize = 32768</span>
<span style="color: #003366">intx PerfDataSamplingInterval = 50</span>
<span style="color: #003366">ccstr PerfDataSaveFile =</span>
<span style="color: #003366">bool PerfDataSaveToFile = false</span>
<span style="color: #003366">bool PerfDisableSharedMem = false</span>
<span style="color: #003366">intx PerfMaxStringConstLength = 1024</span>
<span style="color: #003366">size_t PreTouchParallelChunkSize = 1073741824</span>
<span style="color: #003366">bool PreferInterpreterNativeStubs = false</span>
<span style="color: #003366">intx PrefetchCopyIntervalInBytes = 576</span>
<span style="color: #003366">intx PrefetchFieldsAhead = 1</span>
<span style="color: #003366">intx PrefetchScanIntervalInBytes = 576</span>
<span style="color: #003366">bool PreserveAllAnnotations = false</span>
<span style="color: #003366">bool PreserveFramePointer = false</span>
<span style="color: #003366">size_t PretenureSizeThreshold = 0</span>
<span style="color: #003366">bool PrintClassHistogram = false</span>
<span style="color: #003366">bool PrintCodeCache = false</span>
<span style="color: #003366">bool PrintCodeCacheOnCompilation = false</span>
<span style="color: #003366">bool PrintCommandLineFlags = false</span>
<span style="color: #003366">bool PrintCompilation = false</span>
<span style="color: #003366">bool PrintConcurrentLocks = false</span>
<span style="color: #003366">bool PrintExtendedThreadInfo = false</span>
<span style="color: #003366">bool PrintFlagsFinal = true</span>
<span style="color: #003366">bool PrintFlagsInitial = false</span>
<span style="color: #003366">bool PrintFlagsRanges = false</span>
<span style="color: #003366">bool PrintGC = false</span>
<span style="color: #003366">bool PrintGCDetails = false</span>
<span style="color: #003366">bool PrintHeapAtSIGBREAK = true</span>
<span style="color: #003366">bool PrintSharedArchiveAndExit = false</span>
<span style="color: #003366">bool PrintSharedDictionary = false</span>
<span style="color: #003366">bool PrintStringTableStatistics = false</span>
<span style="color: #003366">bool PrintTieredEvents = false</span>
<span style="color: #003366">bool PrintVMOptions = false</span>
<span style="color: #003366">bool PrintWarnings = true</span>
<span style="color: #003366">uintx ProcessDistributionStride = 4</span>
<span style="color: #003366">bool ProfileInterpreter = true</span>
<span style="color: #003366">intx ProfileMaturityPercentage = 20</span>
<span style="color: #003366">uintx ProfiledCodeHeapSize = 122909434</span>
<span style="color: #003366">uintx PromotedPadding = 3</span>
<span style="color: #003366">uintx QueuedAllocationWarningCount = 0</span>
<span style="color: #003366">int RTMRetryCount = 5</span>
<span style="color: #003366">bool RangeCheckElimination = true</span>
<span style="color: #003366">bool ReassociateInvariants = true</span>
<span style="color: #003366">bool RecordDynamicDumpInfo = false</span>
<span style="color: #003366">bool ReduceBulkZeroing = true</span>
<span style="color: #003366">bool ReduceFieldZeroing = true</span>
<span style="color: #003366">bool ReduceInitialCardMarks = true</span>
<span style="color: #003366">bool ReduceSignalUsage = false</span>
<span style="color: #003366">intx RefDiscoveryPolicy = 0</span>
<span style="color: #003366">bool RegisterFinalizersAtInit = true</span>
<span style="color: #003366">bool RelaxAccessControlCheck = false</span>
<span style="color: #003366">ccstr ReplayDataFile =</span>
<span style="color: #003366">bool RequireSharedSpaces = false</span>
<span style="color: #003366">uintx ReservedCodeCacheSize = 251658240</span>
<span style="color: #003366">bool ResizePLAB = true</span>
<span style="color: #003366">bool ResizeTLAB = true</span>
<span style="color: #003366">bool RestoreMXCSROnJNICalls = false</span>
<span style="color: #003366">bool RestrictContended = true</span>
<span style="color: #003366">bool RestrictReservedStack = true</span>
<span style="color: #003366">bool RewriteBytecodes = true</span>
<span style="color: #003366">bool RewriteFrequentPairs = true</span>
<span style="color: #003366">bool SafepointTimeout = false</span>
<span style="color: #003366">intx SafepointTimeoutDelay = 10000</span>
<span style="color: #003366">bool ScavengeBeforeFullGC = false</span>
<span style="color: #003366">bool SegmentedCodeCache = true</span>
<span style="color: #003366">intx SelfDestructTimer = 0</span>
<span style="color: #003366">ccstr SharedArchiveConfigFile =</span>
<span style="color: #003366">ccstr SharedArchiveFile =</span>
<span style="color: #003366">size_t SharedBaseAddress = 34359738368</span>
<span style="color: #003366">ccstr SharedClassListFile =</span>
<span style="color: #003366">uintx SharedSymbolTableBucketSize = 4</span>
<span style="color: #003366">ccstr ShenandoahGCHeuristics = adaptive</span>
<span style="color: #003366">ccstr ShenandoahGCMode = satb</span>
<span style="color: #003366">bool ShowCodeDetailsInExceptionMessages = true</span>
<span style="color: #003366">bool ShowMessageBoxOnError = false</span>
<span style="color: #003366">bool ShrinkHeapInSteps = true</span>
<span style="color: #003366">size_t SoftMaxHeapSize = 4282384384</span>
<span style="color: #003366">intx SoftRefLRUPolicyMSPerMB = 1000</span>
<span style="color: #003366">bool SplitIfBlocks = true</span>
<span style="color: #003366">intx StackRedPages = 1</span>
<span style="color: #003366">intx StackReservedPages = 0</span>
<span style="color: #003366">intx StackShadowPages = 7</span>
<span style="color: #003366">bool StackTraceInThrowable = true</span>
<span style="color: #003366">intx StackYellowPages = 3</span>
<span style="color: #003366">uintx StartAggressiveSweepingAt = 10</span>
<span style="color: #003366">bool StartAttachListener = false</span>
<span style="color: #003366">ccstr StartFlightRecording =</span>
<span style="color: #003366">uint StringDeduplicationAgeThreshold = 3</span>
<span style="color: #003366">uintx StringTableSize = 65536</span>
<span style="color: #003366">bool SuperWordLoopUnrollAnalysis = true</span>
<span style="color: #003366">bool SuperWordReductions = true</span>
<span style="color: #003366">bool SuppressFatalErrorMessage = false</span>
<span style="color: #003366">uintx SurvivorPadding = 3</span>
<span style="color: #003366">uintx SurvivorRatio = 8</span>
<span style="color: #003366">double SweeperThreshold = 0.500000</span>
<span style="color: #003366">uintx TLABAllocationWeight = 35</span>
<span style="color: #003366">uintx TLABRefillWasteFraction = 64</span>
<span style="color: #003366">size_t TLABSize = 0</span>
<span style="color: #003366">bool TLABStats = true</span>
<span style="color: #003366">uintx TLABWasteIncrement = 4</span>
<span style="color: #003366">uintx TLABWasteTargetPercent = 1</span>
<span style="color: #003366">uintx TargetPLABWastePct = 10</span>
<span style="color: #003366">uintx TargetSurvivorRatio = 50</span>
<span style="color: #003366">uintx TenuredGenerationSizeIncrement = 20</span>
<span style="color: #003366">uintx TenuredGenerationSizeSupplement = 80</span>
<span style="color: #003366">uintx TenuredGenerationSizeSupplementDecay = 2</span>
<span style="color: #003366">intx ThreadPriorityPolicy = 0</span>
<span style="color: #003366">bool ThreadPriorityVerbose = false</span>
<span style="color: #003366">intx ThreadStackSize = 0</span>
<span style="color: #003366">uintx ThresholdTolerance = 10</span>
<span style="color: #003366">intx Tier0BackedgeNotifyFreqLog = 10</span>
<span style="color: #003366">intx Tier0InvokeNotifyFreqLog = 7</span>
<span style="color: #003366">intx Tier0ProfilingStartPercentage = 200</span>
<span style="color: #003366">intx Tier23InlineeNotifyFreqLog = 20</span>
<span style="color: #003366">intx Tier2BackEdgeThreshold = 0</span>
<span style="color: #003366">intx Tier2BackedgeNotifyFreqLog = 14</span>
<span style="color: #003366">intx Tier2CompileThreshold = 0</span>
<span style="color: #003366">intx Tier2InvokeNotifyFreqLog = 11</span>
<span style="color: #003366">intx Tier3BackEdgeThreshold = 60000</span>
<span style="color: #003366">intx Tier3BackedgeNotifyFreqLog = 13</span>
<span style="color: #003366">intx Tier3CompileThreshold = 2000</span>
<span style="color: #003366">intx Tier3DelayOff = 2</span>
<span style="color: #003366">intx Tier3DelayOn = 5</span>
<span style="color: #003366">intx Tier3InvocationThreshold = 200</span>
<span style="color: #003366">intx Tier3InvokeNotifyFreqLog = 10</span>
<span style="color: #003366">intx Tier3LoadFeedback = 5</span>
<span style="color: #003366">intx Tier3MinInvocationThreshold = 100</span>
<span style="color: #003366">intx Tier4BackEdgeThreshold = 40000</span>
<span style="color: #003366">intx Tier4CompileThreshold = 15000</span>
<span style="color: #003366">intx Tier4InvocationThreshold = 5000</span>
<span style="color: #003366">intx Tier4LoadFeedback = 3</span>
<span style="color: #003366">intx Tier4MinInvocationThreshold = 600</span>
<span style="color: #003366">bool TieredCompilation = true</span>
<span style="color: #003366">intx TieredCompileTaskTimeout = 50</span>
<span style="color: #003366">intx TieredRateUpdateMaxTime = 25</span>
<span style="color: #003366">intx TieredRateUpdateMinTime = 1</span>
<span style="color: #003366">intx TieredStopAtLevel = 4</span>
<span style="color: #003366">bool TimeLinearScan = false</span>
<span style="color: #003366">ccstr TraceJVMTI =</span>
<span style="color: #003366">intx TrackedInitializationLimit = 50</span>
<span style="color: #003366">bool TrapBasedNullChecks = false</span>
<span style="color: #003366">bool TrapBasedRangeChecks = false</span>
<span style="color: #003366">intx TypeProfileArgsLimit = 2</span>
<span style="color: #003366">uintx TypeProfileLevel = 111</span>
<span style="color: #003366">intx TypeProfileMajorReceiverPercent = 90</span>
<span style="color: #003366">intx TypeProfileParmsLimit = 2</span>
<span style="color: #003366">intx TypeProfileWidth = 2</span>
<span style="color: #003366">intx UnguardOnExecutionViolation = 0</span>
<span style="color: #003366">bool UseAES = true</span>
<span style="color: #003366">intx UseAVX = 2</span>
<span style="color: #003366">bool UseAdaptiveGenerationSizePolicyAtMajorCollection = true</span>
<span style="color: #003366">bool UseAdaptiveGenerationSizePolicyAtMinorCollection = true</span>
<span style="color: #003366">bool UseAdaptiveNUMAChunkSizing = true</span>
<span style="color: #003366">bool UseAdaptiveSizeDecayMajorGCCost = true</span>
<span style="color: #003366">bool UseAdaptiveSizePolicy = true</span>
<span style="color: #003366">bool UseAdaptiveSizePolicyFootprintGoal = true</span>
<span style="color: #003366">bool UseAdaptiveSizePolicyWithSystemGC = false</span>
<span style="color: #003366">bool UseAddressNop = true</span>
<span style="color: #003366">bool UseBASE64Intrinsics = false</span>
<span style="color: #003366">bool UseBMI1Instructions = true</span>
<span style="color: #003366">bool UseBMI2Instructions = true</span>
<span style="color: #003366">bool UseBiasedLocking = false</span>
<span style="color: #003366">bool UseBimorphicInlining = true</span>
<span style="color: #003366">bool UseCLMUL = true</span>
<span style="color: #003366">bool UseCMoveUnconditionally = false</span>
<span style="color: #003366">bool UseCodeAging = true</span>
<span style="color: #003366">bool UseCodeCacheFlushing = true</span>
<span style="color: #003366">bool UseCompiler = true</span>
<span style="color: #003366">bool UseCompressedClassPointers = true {</span>
<span style="color: #003366">bool UseCompressedOops = true {</span>
<span style="color: #003366">bool UseCondCardMark = false</span>
<span style="color: #003366">bool UseCountLeadingZerosInstruction = true</span>
<span style="color: #003366">bool UseCountTrailingZerosInstruction = true</span>
<span style="color: #003366">bool UseCountedLoopSafepoints = true</span>
<span style="color: #003366">bool UseCounterDecay = true</span>
<span style="color: #003366">bool UseDivMod = true</span>
<span style="color: #003366">bool UseDynamicNumberOfCompilerThreads = true</span>
<span style="color: #003366">bool UseDynamicNumberOfGCThreads = true</span>
<span style="color: #003366">bool UseEmptySlotsInSupers = true</span>
<span style="color: #003366">bool UseFMA = true</span>
<span style="color: #003366">bool UseFPUForSpilling = true</span>
<span style="color: #003366">bool UseFastJNIAccessors = true</span>
<span style="color: #003366">bool UseFastStosb = false</span>
<span style="color: #003366">bool UseG1GC = true</span>
<span style="color: #003366">bool UseGCOverheadLimit = true</span>
<span style="color: #003366">bool UseHeavyMonitors = false</span>
<span style="color: #003366">bool UseInlineCaches = true</span>
<span style="color: #003366">bool UseInterpreter = true</span>
<span style="color: #003366">bool UseJumpTables = true</span>
<span style="color: #003366">bool UseLargePages = false</span>
<span style="color: #003366">bool UseLargePagesIndividualAllocation = false</span>
<span style="color: #003366">bool UseLoopCounter = true</span>
<span style="color: #003366">bool UseLoopInvariantCodeMotion = true</span>
<span style="color: #003366">bool UseLoopPredicate = true</span>
<span style="color: #003366">bool UseMaximumCompactionOnSystemGC = true</span>
<span style="color: #003366">bool UseNUMA = false</span>
<span style="color: #003366">bool UseNUMAInterleaving = false</span>
<span style="color: #003366">bool UseNewLongLShift = true</span>
<span style="color: #003366">bool UseNotificationThread = true</span>
<span style="color: #003366">bool UseOSErrorReporting = false</span>
<span style="color: #003366">bool UseOnStackReplacement = true</span>
<span style="color: #003366">bool UseOnlyInlinedBimorphic = true</span>
<span style="color: #003366">bool UseOptoBiasInlining = false</span>
<span style="color: #003366">bool UsePSAdaptiveSurvivorSizePolicy = true</span>
<span style="color: #003366">bool UseParallelGC = false</span>
<span style="color: #003366">bool UsePerfData = true</span>
<span style="color: #003366">bool UsePopCountInstruction = true</span>
<span style="color: #003366">bool UseProfiledLoopPredicate = true</span>
<span style="color: #003366">bool UseRTMDeopt = false</span>
<span style="color: #003366">bool UseRTMLocking = false</span>
<span style="color: #003366">bool UseSHA = true</span>
<span style="color: #003366">intx UseSSE = 4</span>
<span style="color: #003366">bool UseSSE42Intrinsics = true</span>
<span style="color: #003366">bool UseSerialGC = false</span>
<span style="color: #003366">bool UseSharedSpaces = true</span>
<span style="color: #003366">bool UseShenandoahGC = false</span>
<span style="color: #003366">bool UseSignalChaining = true</span>
<span style="color: #003366">bool UseStoreImmI16 = true</span>
<span style="color: #003366">bool UseStringDeduplication = false</span>
<span style="color: #003366">bool UseSubwordForMaxVector = true</span>
<span style="color: #003366">bool UseSuperWord = true</span>
<span style="color: #003366">bool UseTLAB = true</span>
<span style="color: #003366">bool UseThreadPriorities = true</span>
<span style="color: #003366">bool UseTypeProfile = true</span>
<span style="color: #003366">bool UseTypeSpeculation = true</span>
<span style="color: #003366">bool UseUnalignedLoadStores = true</span>
<span style="color: #003366">bool UseVectorCmov = false</span>
<span style="color: #003366">bool UseXMMForArrayCopy = true</span>
<span style="color: #003366">bool UseXMMForObjInit = true</span>
<span style="color: #003366">bool UseXmmI2D = true</span>
<span style="color: #003366">bool UseXmmI2F = true</span>
<span style="color: #003366">bool UseXmmLoadAndClearUpper = true</span>
<span style="color: #003366">bool UseXmmRegToRegMoveAll = true</span>
<span style="color: #003366">bool UseZGC = false</span>
<span style="color: #003366">intx VMThreadPriority = -1</span>
<span style="color: #003366">intx VMThreadStackSize = 0</span>
<span style="color: #003366">intx ValueMapInitialSize = 11</span>
<span style="color: #003366">intx ValueMapMaxLoopSize = 8</span>
<span style="color: #003366">intx ValueSearchLimit = 1000</span>
<span style="color: #003366">bool VerifySharedSpaces = false</span>
<span style="color: #003366">uintx YoungGenerationSizeIncrement = 20</span>
<span style="color: #003366">uintx YoungGenerationSizeSupplement = 80</span>
<span style="color: #003366">uintx YoungGenerationSizeSupplementDecay = 8</span>
<span style="color: #003366">size_t YoungPLABSize = 4096</span>
<span style="color: #003366">double ZAllocationSpikeTolerance = 2.000000</span>
<span style="color: #003366">double ZCollectionInterval = 0.000000</span>
<span style="color: #003366">double ZFragmentationLimit = 25.000000</span>
<span style="color: #003366">size_t ZMarkStackSpaceLimit = 8589934592</span>
<span style="color: #003366">bool ZProactive = true</span>
<span style="color: #003366">bool ZUncommit = true</span>
<span style="color: #003366">uintx ZUncommitDelay = 300</span>
<span style="color: #003366">bool ZeroTLAB = false</span>
<span style="color: #003366">openjdk version "17.0.6" 2023-01-17</span>
<span style="color: #003366">OpenJDK Runtime Environment Temurin-17.0.6+10 (build 17.0.6+10)</span>
<span style="color: #003366">OpenJDK 64-Bit Server VM Temurin-17.0.6+10 (build 17.0.6+10, mixed mode, sharing)
</span>
Cameron McKenzie is an AWS Certified AI Practitioner, Machine Learning Engineer, Solutions Architect and author of many popular books in the software development and Cloud Computing space. His growing YouTube channel training devs in Java, Spring, AI and ML has well over 30,000 subscribers.
| Git, GitHub & GitHub Copilot Certification Made Easy |
|---|
| Want to get certified on the most popular AI, ML & DevOps technologies of the day? These five resources will help you get GitHub certified in a hurry.
Get certified in the latest AI, ML and DevOps technologies. Advance your career today. |
Learn Git and GitHub fast!