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:
- -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
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)