1. 关键的Java JVM选项和参数
让我们来看看在Java环境中可以配置的21个最重要的JVM选项和参数。
- -Xms:将设置JVM的初始堆大小。
- -Xmx:将设置JVM的最大堆大小。
- -Xss:将设置每个线程的内部使用的线程堆栈的大小。
- -XX:+UseCompressedOops:启用使用压缩对象指针以减少内存使用的功能。
- -XX:+UseThreadPriorities:将指示JVM使用本机线程优先级。
- -XX:PermSize:将设置垃圾收集器永久生成空间的初始大小。
- -XX:MaxPermSize:将设置垃圾收集器永久生成空间的最大大小。
- -XX:NewSize:设置年轻代空间的初始大小。
- -XX:MaxNewSize:设置年轻代空间的最大大小。
- -XX:SurvivorRatio:设置伊甸园空间与幸存者空间的比例。
- -XX:MaxTenuringThreshold:设置幸存者空间中对象的最大年龄。
- -XX:+UseParNewGC:指示JVM使用新的并行生成垃圾收集器。
- -XX:+UseSerialGC:指示JVM使用串行垃圾收集器。
- -XX:+UseG1GC:指示JVM使用Garbage First(G1)垃圾收集器。
- -XX:+UseZGC:指示JVM使用ZGC垃圾收集器。
- -XX:+HeapDumpOnOutOfMemoryError:告诉JVM在发生OutOfMemoryError时创建堆转储文件。
- -XX:HeapDumpPath:为JVM提供自定义路径,在堆转储期间写入堆的内容。
- -Djava.library.path:允许您指定在运行时需要的本机库的路径。
- -Duser.timezone:允许您为JVM设置自定义时区。
- -XX:+PrintGCDetails:指示JVM打印详细的垃圾回收日志,以帮助您进行GC优化。
- -XX:+PrintFlagsFinal-version:将打印在JVM上设置的所有当前配置的标志和选项。
2. 如何使用Java JVM选项
所有这些JVM选项都可以通过将它们作为文本附加到Java运行时命令后来简单地使用。
例如,以下命令将使用六个不同的参数运行名为Go的应用程序,以优化内存分配和垃圾回收:
java Go -XX:MaxPermSize=128m -XX:MaxNewSize=256m -Xms768m -Xmx768m -XX:SurvivorRatio=128 -XX:MaxTenuringThreshold=0
Java JVM选项可用于管理内存和优化GC性能
3. 最常用的JVM参数
在列举的所有 JVM 选项中,最常用的是 Xms 和 Xmx,分别设置最小堆大小和最大堆大小。
下面的示例将最小堆大小设置为 768 MB,最大堆大小设置为 2 GB。
-Xms768m
-Xmx2048
4. GC 选择 JVM 选项
Java的一个优点是它为开发者执行垃圾回收,这使得应用程序更加健壮,更不容易发生内存泄漏问题。
有许多垃圾回收器可用,具有各种暂停行为和停顿时间。
在启动运行时,您只能使用以下 Java JVM 选项之一选择一个垃圾收集器:
-XX:+UseSerialGC
-XX:+UseParallelGC
-XX:+USeParNewGC
-XX:+UseG1GC
-XX:+UseZGC
5. 垃圾回收调优选项
VM实现了一种分代垃圾回收算法,它积极监控新对象,而很少检查旧对象。JVM管理eden空间、tenured空间甚至PermGen空间的方式可以通过JVM选项进行配置,如下:
-XX:MaxPermSize
-XX:PermSize
-XX:NewSize
-XX:MaxNewSize
-XX:SurvivorRatio
-XX:MaxTenuringThreshold
6. 用于检查的JVM打印选项
JVM还提供了一些打印方法,允许您查看Java运行时的状态。有用的JVM打印选项包括:
-XX:+PrintGCDetails
-XX:+PrintGCDateStamps
-XX:+PrintHeapAtGC
-XX:+PrintCommandLineFlags
-XX:+PrintFlagsFinal
PrintFlagsFinal是一项有趣的JVM选项,它将显示所有JVM标志设置的详细信息,输出内容有超过500行。本文介绍的Java JVM选项已经全部讲解完毕,如果你对PrintFlagsFinal JVM标志的详细输出感兴趣,可以查看上文提到的输出内容。
$ 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)