Critical Java JVM options and parameters

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:

  1. -Xms sets the initial heap size for the JVM.
  2. -Xmx sets the maximum heap size for the JVM.
  3. -Xss sets the size of the thread stack for each thread’s internal use.
  4. -XX:+UseCompressedOops enables the use of compressed object pointers to reduce memory usage.
  5. -XX:+UseThreadPriorities instructs the JVM to use native thread priorities.
  6. -XX:PermSize sets the initial size of the garbage collector’s Permanent Generation space.
  7. -XX:MaxPermSize sets the maximum size of the garbage collector’s permanent generation space.
  8. -XX:NewSize sets the initial size of the Young Generation space.
  9. -XX:MaxNewSize sets the maximum size of the Young Generation space.
  10. -XX:SurvivorRatio sets the ratio of Eden space to Survivor space.
  11. -XX:MaxTenuringThreshold sets the maximum age for objects in the Survivor space.
  12. -XX:+UseParNewGC instructs the JVM to use the new parallel generation garbage collector.
  13. -XX:+UseSerialGC instructs the JVM to use the serial garbage collector.
  14. -XX:+UseG1GC instructs the JVM to use the Garbage First (G1) garbage collector.
  15. -XX:+UseZGC instructs the JVM to use the ZGC garbage collector.
  16. -XX:+HeapDumpOnOutOfMemoryError tells the JVM to create a heap dump file when an OutOfMemoryError occurs.
  17. -XX:HeapDumpPath provides a custom path for the JVM to write the contents of the heap during a heap dump.
  18. -Djava.library.path enables you to specifiy paths to native libraries needed at runtime.
  19. -Duser.timezone enables you to set a custom timezone for the JVM.
  20. -XX:+PrintGCDetails instructs the JVM to print out detailed garbage collection logs to help you with GC optimization.
  21. -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
java jvm options

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
-Xmx2048

GC 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:+UseZGC

Garbage 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:MaxTenuringThreshold

JVM 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:+PrintFlagsFinal 

The 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.

$ java -XX:+PrintFlagsFinal -version
[Global flags]
int ActiveProcessorCount = -1
uintx AdaptiveSizeDecrementScaleFactor = 4
uintx AdaptiveSizeMajorGCDecayTimeScale = 10
uintx AdaptiveSizePolicyCollectionCostMargin = 50
uintx AdaptiveSizePolicyInitializingSteps = 20
uintx AdaptiveSizePolicyOutputInterval = 0
uintx AdaptiveSizePolicyWeight = 10
uintx AdaptiveSizeThroughPutPolicy = 0
uintx AdaptiveTimeWeight = 25
bool AggressiveHeap = false
intx AliasLevel = 3
bool AlignVector = false
ccstr AllocateHeapAt =
intx AllocateInstancePrefetchLines = 1
intx AllocatePrefetchDistance = 256
intx AllocatePrefetchInstr = 0
intx AllocatePrefetchLines = 3
intx AllocatePrefetchStepSize = 64
intx AllocatePrefetchStyle = 1
bool AllowParallelDefineClass = false
bool AllowRedefinitionToAddDeleteMethods = false
bool AllowUserSignalHandlers = false
bool AllowVectorizeOnDemand = true
bool AlwaysActAsServerClassMachine = false
bool AlwaysCompileLoopMethods = false
bool AlwaysLockClassLoader = false
bool AlwaysPreTouch = false
bool AlwaysRestoreFPU = false
bool AlwaysTenure = false
ccstr ArchiveClassesAtExit =
intx ArrayCopyLoadStoreMaxElem = 8
size_t AsyncLogBufferSize = 2097152
intx AutoBoxCacheMax = 128
intx BCEATraceLevel = 0
bool BackgroundCompilation = true
size_t BaseFootPrintEstimate = 268435456
intx BiasedLockingBulkRebiasThreshold = 20
intx BiasedLockingBulkRevokeThreshold = 40
intx BiasedLockingDecayTime = 25000
intx BiasedLockingStartupDelay = 0
bool BlockLayoutByFrequency = true
intx BlockLayoutMinDiamondPercentage = 20
bool BlockLayoutRotateLoops = true
intx C1InlineStackLimit = 5
intx C1MaxInlineLevel = 9
intx C1MaxInlineSize = 35
intx C1MaxRecursiveInlineLevel = 1
intx C1MaxTrivialSize = 6
bool C1OptimizeVirtualCallProfiling = true
bool C1ProfileBranches = true
bool C1ProfileCalls = true
bool C1ProfileCheckcasts = true
bool C1ProfileInlinedCalls = true
bool C1ProfileVirtualCalls = true
bool C1UpdateMethodData = true
intx CICompilerCount = 4
bool CICompilerCountPerCPU = true
bool CITime = false
bool CheckJNICalls = false
bool ClassUnloading = true
bool ClassUnloadingWithConcurrentMark = true
bool ClipInlining = true
uintx CodeCacheExpansionSize = 65536
bool CompactStrings = true
ccstr CompilationMode = default
ccstrlist CompileCommand =
ccstr CompileCommandFile =
ccstrlist CompileOnly =
intx CompileThreshold = 10000
double CompileThresholdScaling = 1.000000
intx CompilerThreadPriority = -1
intx CompilerThreadStackSize = 0
size_t CompressedClassSpaceSize = 1073741824
uint ConcGCThreads = 3
intx ConditionalMoveLimit = 3
intx ContendedPaddingWidth = 128
bool CrashOnOutOfMemoryError = false
bool CreateCoredumpOnCrash = true
bool CriticalJNINatives = false
bool DTraceAllocProbes = false
bool DTraceMethodProbes = false
bool DTraceMonitorProbes = false
bool DisableAttachMechanism = false
bool DisableExplicitGC = false
bool DisplayVMOutputToStderr = false
bool DisplayVMOutputToStdout = false
bool DoEscapeAnalysis = true
bool DoReserveCopyInSuperWord = true
bool DontCompileHugeMethods = true
bool DontYieldALot = false
ccstr DumpLoadedClassList =
bool DumpReplayDataOnError = true
bool DumpSharedSpaces = false
bool DynamicDumpSharedSpaces = false
bool EagerXrunInit = false
intx EliminateAllocationArraySizeLimit = 64
bool EliminateAllocations = true
bool EliminateAutoBox = true
bool EliminateLocks = true
bool EliminateNestedLocks = true
bool EnableContended = true
bool EnableDynamicAgentLoading = true
size_t ErgoHeapSizeLimit = 0
ccstr ErrorFile =
bool ErrorFileToStderr = false
bool ErrorFileToStdout = false
uint64_t ErrorLogTimeout = 120
double EscapeAnalysisTimeout = 20.000000
bool EstimateArgEscape = true
bool ExecutingUnitTests = false
bool ExitOnOutOfMemoryError = false
bool ExplicitGCInvokesConcurrent = false
bool ExtendedDTraceProbes = false
bool ExtensiveErrorReports = false
ccstr ExtraSharedClassListFile =
bool FilterSpuriousWakeups = true
bool FlightRecorder = false
ccstr FlightRecorderOptions =
bool ForceTimeHighResolution = false
intx FreqInlineSize = 325
double G1ConcMarkStepDurationMillis = 10.000000
uintx G1ConcRSHotCardLimit = 4
size_t G1ConcRSLogCacheSize = 10
size_t G1ConcRefinementGreenZone = 0
size_t G1ConcRefinementRedZone = 0
uintx G1ConcRefinementServiceIntervalMillis = 300
uint G1ConcRefinementThreads = 10
size_t G1ConcRefinementThresholdStep = 2
size_t G1ConcRefinementYellowZone = 0
uintx G1ConfidencePercent = 50
size_t G1HeapRegionSize = 2097152
uintx G1HeapWastePercent = 5
uintx G1MixedGCCountTarget = 8
uintx G1PeriodicGCInterval = 0
bool G1PeriodicGCInvokesConcurrent = true
double G1PeriodicGCSystemLoadThreshold = 0.000000
intx G1RSetRegionEntries = 512
intx G1RSetSparseRegionEntries = 16
intx G1RSetUpdatingPauseTimePercent = 10
uint G1RefProcDrainInterval = 1000
uintx G1ReservePercent = 10
uintx G1SATBBufferEnqueueingThresholdPercent = 60
size_t G1SATBBufferSize = 1024
size_t G1UpdateBufferSize = 256
bool G1UseAdaptiveConcRefinement = true
bool G1UseAdaptiveIHOP = true
uintx GCDrainStackTargetSize = 64
uintx GCHeapFreeLimit = 2
uintx GCLockerEdenExpansionPercent = 5
uintx GCPauseIntervalMillis = 201
uintx GCTimeLimit = 98
uintx GCTimeRatio = 12
size_t HeapBaseMinAddress = 2147483648
bool HeapDumpAfterFullGC = false
bool HeapDumpBeforeFullGC = false
intx HeapDumpGzipLevel = 0
bool HeapDumpOnOutOfMemoryError = false
ccstr HeapDumpPath =
uintx HeapFirstMaximumCompactionCount = 3
uintx HeapMaximumCompactionInterval = 20
uintx HeapSearchSteps = 3
size_t HeapSizePerGCThread = 43620760
bool IgnoreEmptyClassPaths = false
bool IgnoreUnrecognizedVMOptions = false
uintx IncreaseFirstTierCompileThresholdAt = 50
bool IncrementalInline = true
uintx InitialCodeCacheSize = 2555904
size_t InitialHeapSize = 268435456
uintx InitialRAMFraction = 64
double InitialRAMPercentage = 1.562500
uintx InitialSurvivorRatio = 8
uintx InitialTenuringThreshold = 7
uintx InitiatingHeapOccupancyPercent = 45
bool Inline = true
ccstr InlineDataFile =
intx InlineSmallCode = 2500
bool InlineSynchronizedMethods = true
intx InteriorEntryAlignment = 16
intx InterpreterProfilePercentage = 33
bool JavaMonitorsInStackTrace = true
intx JavaPriority10_To_OSPriority = -1
intx JavaPriority1_To_OSPriority = -1
intx JavaPriority2_To_OSPriority = -1
intx JavaPriority3_To_OSPriority = -1
intx JavaPriority4_To_OSPriority = -1
intx JavaPriority5_To_OSPriority = -1
intx JavaPriority6_To_OSPriority = -1
intx JavaPriority7_To_OSPriority = -1
intx JavaPriority8_To_OSPriority = -1
intx JavaPriority9_To_OSPriority = -1
size_t LargePageHeapSizeThreshold = 134217728
size_t LargePageSizeInBytes = 0
intx LiveNodeCountInliningCutoff = 40000
intx LoopMaxUnroll = 16
intx LoopOptsCount = 43
intx LoopPercentProfileLimit = 10
uintx LoopStripMiningIter = 1000
uintx LoopStripMiningIterShortLoop = 100
intx LoopUnrollLimit = 60
intx LoopUnrollMin = 4
bool LoopUnswitching = true
bool ManagementServer = false
size_t MarkStackSize = 4194304
size_t MarkStackSizeMax = 536870912
uint MarkSweepAlwaysCompactCount = 4
uintx MarkSweepDeadRatio = 5
intx MaxBCEAEstimateLevel = 5
intx MaxBCEAEstimateSize = 150
uint64_t MaxDirectMemorySize = 0
bool MaxFDLimit = true
uintx MaxGCMinorPauseMillis = 18446744073709551615
uintx MaxGCPauseMillis = 200
uintx MaxHeapFreeRatio = 70
size_t MaxHeapSize = 4282384384
intx MaxInlineLevel = 15
intx MaxInlineSize = 35
intx MaxJNILocalCapacity = 65536
intx MaxJavaStackTraceDepth = 1024
intx MaxJumpTableSize = 65000
intx MaxJumpTableSparseness = 5
intx MaxLabelRootDepth = 1100
intx MaxLoopPad = 15
size_t MaxMetaspaceExpansion = 5439488
uintx MaxMetaspaceFreeRatio = 70
size_t MaxMetaspaceSize = 18446744073709551615
size_t MaxNewSize = 2569011200
intx MaxNodeLimit = 80000
uint64_t MaxRAM = 137438953472
uintx MaxRAMFraction = 4
double MaxRAMPercentage = 25.000000
intx MaxRecursiveInlineLevel = 1
uintx MaxTenuringThreshold = 15
intx MaxTrivialSize = 6
intx MaxVectorSize = 32
ccstr MetaspaceReclaimPolicy = balanced
size_t MetaspaceSize = 22020096
bool MethodFlushing = true
size_t MinHeapDeltaBytes = 2097152
uintx MinHeapFreeRatio = 40
size_t MinHeapSize = 8388608
intx MinInliningThreshold = 250
intx MinJumpTableSize = 10
size_t MinMetaspaceExpansion = 327680
uintx MinMetaspaceFreeRatio = 40
uintx MinRAMFraction = 2
double MinRAMPercentage = 50.000000
uintx MinSurvivorRatio = 3
size_t MinTLABSize = 2048
intx MultiArrayExpandLimit = 6
uintx NUMAChunkResizeWeight = 20
size_t NUMAInterleaveGranularity = 2097152
uintx NUMAPageScanRate = 256
size_t NUMASpaceResizeRate = 1073741824
bool NUMAStats = false
ccstr NativeMemoryTracking = off
bool NeverActAsServerClassMachine = false
bool NeverTenure = false
uintx NewRatio = 2
size_t NewSize = 1363144
size_t NewSizeThreadIncrease = 5320
intx NmethodSweepActivity = 10
intx NodeLimitFudgeFactor = 2000
uintx NonNMethodCodeHeapSize = 5839372
uintx NonProfiledCodeHeapSize = 122909434
intx NumberOfLoopInstrToAlign = 4
intx ObjectAlignmentInBytes = 8 {
size_t OldPLABSize = 1024
size_t OldSize = 5452592
bool OmitStackTraceInFastThrow = true
ccstrlist OnError =
ccstrlist OnOutOfMemoryError =
intx OnStackReplacePercentage = 140
bool OptimizeFill = false
bool OptimizePtrCompare = true
bool OptimizeStringConcat = true
bool OptoBundling = false
intx OptoLoopAlignment = 16
bool OptoRegScheduling = true
bool OptoScheduling = false
uintx PLABWeight = 75
bool PSChunkLargeArrays = true
int ParGCArrayScanChunk = 50
uintx ParallelGCBufferWastePct = 10
uint ParallelGCThreads = 10
size_t ParallelOldDeadWoodLimiterMean = 50
size_t ParallelOldDeadWoodLimiterStdDev = 80
bool ParallelRefProcBalancingEnabled = true
bool ParallelRefProcEnabled = true
bool PartialPeelAtUnsignedTests = true
bool PartialPeelLoop = true
intx PartialPeelNewPhiDelta = 0
uintx PausePadding = 1
intx PerBytecodeRecompilationCutoff = 200
intx PerBytecodeTrapLimit = 4
intx PerMethodRecompilationCutoff = 400
intx PerMethodTrapLimit = 100
bool PerfAllowAtExitRegistration = false
bool PerfBypassFileSystemCheck = false
intx PerfDataMemorySize = 32768
intx PerfDataSamplingInterval = 50
ccstr PerfDataSaveFile =
bool PerfDataSaveToFile = false
bool PerfDisableSharedMem = false
intx PerfMaxStringConstLength = 1024
size_t PreTouchParallelChunkSize = 1073741824
bool PreferInterpreterNativeStubs = false
intx PrefetchCopyIntervalInBytes = 576
intx PrefetchFieldsAhead = 1
intx PrefetchScanIntervalInBytes = 576
bool PreserveAllAnnotations = false
bool PreserveFramePointer = false
size_t PretenureSizeThreshold = 0
bool PrintClassHistogram = false
bool PrintCodeCache = false
bool PrintCodeCacheOnCompilation = false
bool PrintCommandLineFlags = false
bool PrintCompilation = false
bool PrintConcurrentLocks = false
bool PrintExtendedThreadInfo = false
bool PrintFlagsFinal = true
bool PrintFlagsInitial = false
bool PrintFlagsRanges = false
bool PrintGC = false
bool PrintGCDetails = false
bool PrintHeapAtSIGBREAK = true
bool PrintSharedArchiveAndExit = false
bool PrintSharedDictionary = false
bool PrintStringTableStatistics = false
bool PrintTieredEvents = false
bool PrintVMOptions = false
bool PrintWarnings = true
uintx ProcessDistributionStride = 4
bool ProfileInterpreter = true
intx ProfileMaturityPercentage = 20
uintx ProfiledCodeHeapSize = 122909434
uintx PromotedPadding = 3
uintx QueuedAllocationWarningCount = 0
int RTMRetryCount = 5
bool RangeCheckElimination = true
bool ReassociateInvariants = true
bool RecordDynamicDumpInfo = false
bool ReduceBulkZeroing = true
bool ReduceFieldZeroing = true
bool ReduceInitialCardMarks = true
bool ReduceSignalUsage = false
intx RefDiscoveryPolicy = 0
bool RegisterFinalizersAtInit = true
bool RelaxAccessControlCheck = false
ccstr ReplayDataFile =
bool RequireSharedSpaces = false
uintx ReservedCodeCacheSize = 251658240
bool ResizePLAB = true
bool ResizeTLAB = true
bool RestoreMXCSROnJNICalls = false
bool RestrictContended = true
bool RestrictReservedStack = true
bool RewriteBytecodes = true
bool RewriteFrequentPairs = true
bool SafepointTimeout = false
intx SafepointTimeoutDelay = 10000
bool ScavengeBeforeFullGC = false
bool SegmentedCodeCache = true
intx SelfDestructTimer = 0
ccstr SharedArchiveConfigFile =
ccstr SharedArchiveFile =
size_t SharedBaseAddress = 34359738368
ccstr SharedClassListFile =
uintx SharedSymbolTableBucketSize = 4
ccstr ShenandoahGCHeuristics = adaptive
ccstr ShenandoahGCMode = satb
bool ShowCodeDetailsInExceptionMessages = true
bool ShowMessageBoxOnError = false
bool ShrinkHeapInSteps = true
size_t SoftMaxHeapSize = 4282384384
intx SoftRefLRUPolicyMSPerMB = 1000
bool SplitIfBlocks = true
intx StackRedPages = 1
intx StackReservedPages = 0
intx StackShadowPages = 7
bool StackTraceInThrowable = true
intx StackYellowPages = 3
uintx StartAggressiveSweepingAt = 10
bool StartAttachListener = false
ccstr StartFlightRecording =
uint StringDeduplicationAgeThreshold = 3
uintx StringTableSize = 65536
bool SuperWordLoopUnrollAnalysis = true
bool SuperWordReductions = true
bool SuppressFatalErrorMessage = false
uintx SurvivorPadding = 3
uintx SurvivorRatio = 8
double SweeperThreshold = 0.500000
uintx TLABAllocationWeight = 35
uintx TLABRefillWasteFraction = 64
size_t TLABSize = 0
bool TLABStats = true
uintx TLABWasteIncrement = 4
uintx TLABWasteTargetPercent = 1
uintx TargetPLABWastePct = 10
uintx TargetSurvivorRatio = 50
uintx TenuredGenerationSizeIncrement = 20
uintx TenuredGenerationSizeSupplement = 80
uintx TenuredGenerationSizeSupplementDecay = 2
intx ThreadPriorityPolicy = 0
bool ThreadPriorityVerbose = false
intx ThreadStackSize = 0
uintx ThresholdTolerance = 10
intx Tier0BackedgeNotifyFreqLog = 10
intx Tier0InvokeNotifyFreqLog = 7
intx Tier0ProfilingStartPercentage = 200
intx Tier23InlineeNotifyFreqLog = 20
intx Tier2BackEdgeThreshold = 0
intx Tier2BackedgeNotifyFreqLog = 14
intx Tier2CompileThreshold = 0
intx Tier2InvokeNotifyFreqLog = 11
intx Tier3BackEdgeThreshold = 60000
intx Tier3BackedgeNotifyFreqLog = 13
intx Tier3CompileThreshold = 2000
intx Tier3DelayOff = 2
intx Tier3DelayOn = 5
intx Tier3InvocationThreshold = 200
intx Tier3InvokeNotifyFreqLog = 10
intx Tier3LoadFeedback = 5
intx Tier3MinInvocationThreshold = 100
intx Tier4BackEdgeThreshold = 40000
intx Tier4CompileThreshold = 15000
intx Tier4InvocationThreshold = 5000
intx Tier4LoadFeedback = 3
intx Tier4MinInvocationThreshold = 600
bool TieredCompilation = true
intx TieredCompileTaskTimeout = 50
intx TieredRateUpdateMaxTime = 25
intx TieredRateUpdateMinTime = 1
intx TieredStopAtLevel = 4
bool TimeLinearScan = false
ccstr TraceJVMTI =
intx TrackedInitializationLimit = 50
bool TrapBasedNullChecks = false
bool TrapBasedRangeChecks = false
intx TypeProfileArgsLimit = 2
uintx TypeProfileLevel = 111
intx TypeProfileMajorReceiverPercent = 90
intx TypeProfileParmsLimit = 2
intx TypeProfileWidth = 2
intx UnguardOnExecutionViolation = 0
bool UseAES = true
intx UseAVX = 2
bool UseAdaptiveGenerationSizePolicyAtMajorCollection = true
bool UseAdaptiveGenerationSizePolicyAtMinorCollection = true
bool UseAdaptiveNUMAChunkSizing = true
bool UseAdaptiveSizeDecayMajorGCCost = true
bool UseAdaptiveSizePolicy = true
bool UseAdaptiveSizePolicyFootprintGoal = true
bool UseAdaptiveSizePolicyWithSystemGC = false
bool UseAddressNop = true
bool UseBASE64Intrinsics = false
bool UseBMI1Instructions = true
bool UseBMI2Instructions = true
bool UseBiasedLocking = false
bool UseBimorphicInlining = true
bool UseCLMUL = true
bool UseCMoveUnconditionally = false
bool UseCodeAging = true
bool UseCodeCacheFlushing = true
bool UseCompiler = true
bool UseCompressedClassPointers = true {
bool UseCompressedOops = true {
bool UseCondCardMark = false
bool UseCountLeadingZerosInstruction = true
bool UseCountTrailingZerosInstruction = true
bool UseCountedLoopSafepoints = true
bool UseCounterDecay = true
bool UseDivMod = true
bool UseDynamicNumberOfCompilerThreads = true
bool UseDynamicNumberOfGCThreads = true
bool UseEmptySlotsInSupers = true
bool UseFMA = true
bool UseFPUForSpilling = true
bool UseFastJNIAccessors = true
bool UseFastStosb = false
bool UseG1GC = true
bool UseGCOverheadLimit = true
bool UseHeavyMonitors = false
bool UseInlineCaches = true
bool UseInterpreter = true
bool UseJumpTables = true
bool UseLargePages = false
bool UseLargePagesIndividualAllocation = false
bool UseLoopCounter = true
bool UseLoopInvariantCodeMotion = true
bool UseLoopPredicate = true
bool UseMaximumCompactionOnSystemGC = true
bool UseNUMA = false
bool UseNUMAInterleaving = false
bool UseNewLongLShift = true
bool UseNotificationThread = true
bool UseOSErrorReporting = false
bool UseOnStackReplacement = true
bool UseOnlyInlinedBimorphic = true
bool UseOptoBiasInlining = false
bool UsePSAdaptiveSurvivorSizePolicy = true
bool UseParallelGC = false
bool UsePerfData = true
bool UsePopCountInstruction = true
bool UseProfiledLoopPredicate = true
bool UseRTMDeopt = false
bool UseRTMLocking = false
bool UseSHA = true
intx UseSSE = 4
bool UseSSE42Intrinsics = true
bool UseSerialGC = false
bool UseSharedSpaces = true
bool UseShenandoahGC = false
bool UseSignalChaining = true
bool UseStoreImmI16 = true
bool UseStringDeduplication = false
bool UseSubwordForMaxVector = true
bool UseSuperWord = true
bool UseTLAB = true
bool UseThreadPriorities = true
bool UseTypeProfile = true
bool UseTypeSpeculation = true
bool UseUnalignedLoadStores = true
bool UseVectorCmov = false
bool UseXMMForArrayCopy = true
bool UseXMMForObjInit = true
bool UseXmmI2D = true
bool UseXmmI2F = true
bool UseXmmLoadAndClearUpper = true
bool UseXmmRegToRegMoveAll = true
bool UseZGC = false
intx VMThreadPriority = -1
intx VMThreadStackSize = 0
intx ValueMapInitialSize = 11
intx ValueMapMaxLoopSize = 8
intx ValueSearchLimit = 1000
bool VerifySharedSpaces = false
uintx YoungGenerationSizeIncrement = 20
uintx YoungGenerationSizeSupplement = 80
uintx YoungGenerationSizeSupplementDecay = 8
size_t YoungPLABSize = 4096
double ZAllocationSpikeTolerance = 2.000000
double ZCollectionInterval = 0.000000
double ZFragmentationLimit = 25.000000
size_t ZMarkStackSpaceLimit = 8589934592
bool ZProactive = true
bool ZUncommit = true
uintx ZUncommitDelay = 300
bool ZeroTLAB = false
openjdk version "17.0.6" 2023-01-17
OpenJDK Runtime Environment Temurin-17.0.6+10 (build 17.0.6+10)
OpenJDK 64-Bit Server VM Temurin-17.0.6+10 (build 17.0.6+10, mixed mode, sharing)

Learn Git and GitHub fast!