-XX:[+/-]GPGCCommitInitialHeapLazily |
Prevents the whole of the initial heap size, InitialHeapSize or -Xms , from being committed from the OS upfront, according to the specified value of GPGCLazyInitialHeapCommitPercent . The remainder gets committed based on regular elastic heap heuristics. |
false |
-XX:GPGCLazyInitialHeapCommitPercent |
Specifies what percent of InitialHeapSize or -Xms shall be committed from the OS upfront at startup, when GPGPCCommitInitialHeapLazily is enabled. |
50 |
-XX:[+/-]GPGCReportLegacyGarbageCollectorMXBean |
Java 11 and 17: Switches back to the previous MXBean GC metric name java.lang.GarbageCollector.GPGC New and java.lang.GarbageCollector.GPGC Old. |
true |
-XX:[+/-]GPGCUseAllocationPacing |
Allows VM to smoothly decrease allocation rate of the application if GC doesn’t keep up. Helps to avoid complete exhaustion of heap space followed by possibly long stalls. Available in non-ZST mode only. |
false |
-XX:[+/-]CheckpointTimeout |
Tells the JVM to promote a checkpoint to a safepoint if the checkpoint takes too much time. A checkpoint happens when the JVM needs to interrupt a single Java thread and do something to it. The action will not affect any other threads that are running. |
true |
-XX:[+/-]DieOnSafepointTimeout |
Abort the VM upon failure to reach safepoint. A safepoint happens when the JVM needs to pause every Java thread that’s running in order to perform an operation which can only happen when all threads are asleep |
true |
-XX:CheckpointTimeoutDelay=<value in ms> |
Delay in milliseconds for option CheckpointTimeout . |
50000 |
-XX:SafepointTimeoutDelay=<value in ms> |
Delay in milliseconds for option DieOnSafepointTimeout . |
50000 |
-XX:[+/-]DieOnSafepointOperationTimeout |
Abort the VM if safepoint operationTime exceeds SafepointOperationTimeoutDelayMS . |
false |
-XX:SafepointOperationTimeoutDelayMS=<value in ms> |
Timeout, in milliseconds, for safepoint operation when DieOnSafepointOperationTimeout is enabled. |
50000 |
-XX:GPGCActiveObjectPaddingSize=<number> |
Number of cache lines of padding to insert after mutator relocated objects during relocation. |
0 |
-XX:[+/-]GPGCRetainActiveObjectPadding |
When true, retain any previously allocated active object padding during GC relocation. When false, any previously allocated active object padding is removed during GC relocation and will not be re-added until the object is mutator relocated again. |
false |
-XX:GPGCTimeStampPromotionThresholdMS=<value in ms> |
Time, in milliseconds, that an object page stays in the new generation before getting promoted to the old generation. |
2000 for Xmx > 2 GB, 500 for Xmx ⇐ 2 GB |
-XX:GPGCNewGenConcurrentMarkFlushRetryLimit=<upper limit of retries> |
Limits the number of mutator NMT reference buffer flushes performed during concurrent marking. The default value of the retry limit is 3. To return to the old behavior of looping in concurrent marking until no more mutator references are flushed, change the default value to -1. |
3 |
-XX:GPGCNewGenConcurrentMarkFlushRetryLimitAction=<upper limit of iterations> |
Controls the behavior of the new garbage collector when the number of iterations of the concurrent marking mutator NMT flush loop exceeds the specified retry limit. The default action is to perform reference strengthening followed by iterating the limit of retries more times before exiting out of the loop and heading toward the safepoint. |
2 |
-XX:GPGCPausePreventionMemory=<value in bytes> |
Allocates the limit from the pause fund to restrict pause prevention memory. |
-1 |
-XX:GPGCHeuristicCheckIntervalMS=<time interval in ms> |
Controls the time interval between consecutive heuristic evaluations when Zing runs heuristics to determine the time to trigger a garbage collection. The default is 20 milliseconds starting with Zing 20.03.0.0. Before Zing 20.03.0.0, it was 50 milliseconds. |
20 |
-XX:[+/-]UseEpsilonGC |
Implements a no-op garbage collector. When enabled, Zing neither triggers any GC cycles nor generates GC barriers. Being an experimental option, it needs to be unlocked by preceding -XX:+UnlockExperimentalVMOptions . |
false |
-XX:GPGCHeuristicHalfLifeMS=<value in ms> |
Specifies the half-life, in milliseconds, for exponential decay of heuristic models that drive triggering of garbage collection cycles. |
60000 |
-XX:GPGCNewGCIntervalMS=<value in ms> |
Specifies the maximum interval between new generation garbage collection cycles triggered by GC heuristics. The interval is calculated from the start of the previous new generation collection. |
0 |
-XX:GPGCOldGCMaxIntervalMS=<value in ms> |
Specifies the maximum interval between old generation garbage collection cycles triggered by GC heuristics. The interval is calculated from the start of the previous old generation collection. |
0 |
-XX:GPGCMaxOldGCInterval=<number> |
Specifies the maximum number of new GC cycles that can be run before triggering the next full (Old) GC cycle. |
-1 |
-XX:[+/-]UseGCUnifiedLogging |
Enables unified GC logging in Zing 8, 11, and 13. |
true |
-XX:GPGCTargetPeakNewGenOccupancyBytes=<value in bytes> |
Specifies the soft limit for java heap usage by the new generation, in bytes, that GC heuristics target to achieve.
If GPGCTargetPeakNewGenOccupancyBytes is not set, the value will be adjusted dynamically. Explicitly setting this option disables dynamic allocation. |
0 |
-XX:GPGCTargetPeakNewGenOccupancyPercent=<value> |
Specifies the soft limit for java heap usage by the new generation, as a percentage of the maximum heap size, that GC heuristics target to achieve.
If GPGCTargetPeakNewGenOccupancyPercent is not set, the value will be adjusted dynamically. Explicitly setting this option disables dynamic allocation. |
0 |
-XX:GPGCTargetPeakHeapOccupancyPercent=<value> |
Specifies the soft limit for overall java heap usage, as a percentage of the maximum heap size, that GC heuristics target to achieve.
If GPGCTargetPeakHeapOccupancyPercent is not set, the value will be adjusted dynamically. Explicitly setting this option disables dynamic allocation. |
100 for ZST reserve-at-config, 95 for ZST reserve-at-launch, 90 for non-ZST mode |
-XX:GenPauselessNewThreads=<value> |
Specifies the number of garbage collection worker threads for the new generation. Setting default value is based off of Xmx:
If Xmx is more than 2 GB, the default value is 45% of the number of logical cores available to the process.
If Xmx is less than or equal to 2 GB, the default value is either Xmx divided by 128 MB or 45% of the number of logical cores available to the process, whichever is smaller.
If -XX:+UseSTW is specified, the default value is the number of logical cores. available to the process.
The minimum value supported is 1.
If not set, this value can be managed dynamically. See note in -XX:GPGCThreads . |
15 |
-XX:GenPauselessOldThreads=<value> |
Specifies the number of garbage collection worker threads for the old generation. Setting default value is based off of Xmx:
-
If Xmx is more than 2 GB, the default value is 30% of the number of logical cores available to the process.
-
If Xmx is less than or equal to 2 GB, the default value is either 66% (two thirds) of the value of GenPauselessNewThreads , or 30% of the number of logical cores available to the process, whichever is smaller.
-
When -XX:+UseSTW is specified, the default value is the same as the number of logical cores available to the process.
The minimum value supported is 1.
If not set, this value can be managed dynamically using . See note in -XX:GPGCThreads . |
9 |
-XX:GPGCThreads=<value> |
Specifies the total number of garbage collection worker threads This is an alternative way to specify GenPauselessNewThreads and GenPauselessOldThreads
When used, GenPauselessOldThreads is derived as 40% of GPGCThreads . GenPauselessNewThreads is then derived as GPGCThreads – GenPauselessOldThreads . The default value is the sum of the default values of GenPauselessNewThreads and GenPauselessOldThreads .
The minimum value supported is 2.
Note
|
As of Azul Platform Prime 21.10.0.0, if the values GPGCThreads , GenPauslessNewThreads , and GenPauselessOldThreads are not set, the number of garbage collector worker threads are managed dynamically using UseDynamicNumberOfGCThreads , if enabled, according to the configuration of GPGCDynamicGCThreadCountPolicy .
|
|
24 |
-XX:[+/-]UseDynamicNumberOfGCThreads |
Turn on/off dynamic changes to GC thread counts. |
true |
-XX:GPGCDynamicGCThreadCountPolicy=<value> |
Enable dynamic garbage collection thread count policy.
-
0 - Disable dynamic handling. Set a static garbage collector thread count that is fixed to the -XX:GPGCThreads value.
-
1 - The garbage collector thread count is managed automatically and will dynamically increase but never decrease. The thread count is limited by -XX:GPGCThreads=N.
-
2 - The garbage collector thread count is managed automatically and will be increased and decreased dynamically. The thread count is limited by -XX:GPGCThreads=N.
|
1 |
-XX:[+/-]ConcurrentJVMTITagMapClearing |
Lower GC pauses with JVMTI, resolving deadlock with callbacks during JVMTI tag map clearing |
true |
-XX:[+/-]GPGCNotifyJVMTIGCEventsInSafepoint |
When enabled, the JVM issues JVMTI GC event notifications from within safepoints. Disabling it causes notifications to happen from outside the safepoint. |
true |
-XX:[+/-]GPGCUseTargetCPUHeuristic |
If disabled, will cause CPU-based heuristics to be skipped for heap elasticity and dynamic GC thread counts. |
true |
-XX:[+/-]GPGCSafepointWaitForMutatorResume |
Tells the Garbage Collector to pause and wait for mutator threads to be woken up before resuming, after every GC safepoint. If -XX:-GPGCSafepointWaitForMutatorResume is set, the Garbage Collector resumes its work in parallel with mutator threads waking up. |
true |
-XX:PrintGCHeadersGuaranteedIntervalSecs=<value in seconds> |
When set to a value greater than zero, defines a time interval for periodic printing of GC log headers. This helps open partial GC logs in GC log analyzer, for example those pulled from Splunk. |
0 |
-XX:GPGCLvbCodeVersioningMode=<mode> |
Also known as hybrid mode. Enables Load Value Barrier (LVB) Code Versioning. Improves the throughput of your JVM application by eliminating cost of the Garbage Collector (GC) barrier instructions when the GC is not running, at the cost of higher GC CPU usage while the GC is running.
Hybrid mode has three modes:
-
none - disables this feature
-
allMethods - enables hybrid mode, where all Falcon compilations are compiled twice - once with LVB and once without.
-
sampling - enables Hybrid mode, where only the Falcon compilations identified as hot by the ApplicationHotnessSampler are compiled in the LVBless mode.
|
none |
-XX:StartupGCLogSaveCount=<number of save counts> |
Preserves the starting logs during log rotation.
If you are using Unified Logging, this option is replaced with the Xlog:gc parameter 'savecount'. |
0 |
-XX:WarmupPeriodForStatsSeconds=<value in seconds> |
Defines the duration of the periodic GC logging Warmup phase, in seconds. |
300 |
-XX:SteadyPeriodForStatsSeconds=<value in seconds> |
Defines the duration of the periodic GC logging Steady phase, in seconds. The default is 0, which means logging continues indefinitely unless explicitly changed. If you explicitly set this option to 0, the Steady phase is skipped. |
0 |
-XX:PeriodicStatsDuringWarmupIntervalSeconds=<value in seconds> |
Controls how frequently logs are printed during the periodic GC logging Warmup phase, in seconds. |
5 |
-XX:PeriodicStatsIntervalSeconds=<value in seconds> |
Controls how frequently logs are printed during the periodic GC logging Steady phase, in seconds. |
60 |
-XX:[+/-]GCLogPrintWeakRefStats |
Enables logging of Reference.get() counters in standard log line format. This records any time a Reference.get() call is made, as well as how many total refs were strengthened. |
true |
-XX:[+/-]PrintPSI |
Adds Pressure Stall Information (PSI) to the GC log along with other system metrics. |
true |