-XX:[+/-]OptimizeFindDeadlocksWithCheckpoint |
Enable elimination of safepoint pauses for finding deadlocks operations by first attempting to complete them using a checkpoint. If a deadlock is detected in the checkpoint, it is then confirmed using a safepoint pause. |
true |
-XX:DiagnosticFolder=<path> |
Gathers all useful diagnostic logs into one folder for easier evaluation. |
none |
-XX:[+/-]PrintGCHSLines |
Enables writing system information headers (GCHS) in the garbage collection log file. |
true if GC logging is enabled, false if GC logging is disabled |
-XX:[+/-]PrintGCExtraDetails |
Enables a new Garbage Collector logging level used wherever the data collection or reporting has a noticeable overhead. This flag also enables PrintGCDetails which is the next lower logging level. |
false |
-XX:[+/-]PromoteCheckpoints |
Lets tardy threads complete the checkpoint process by pausing active threads. See Troubleshooting Guide for suggestions on when to use this option. |
false |
-XX:CheckpointPromotionDelay=<time in ms> |
Defines the threshold for triggering the promotion timeout. This flag has an effect when -XX:+PromoteCheckpoints is specified. |
850 |
-XX:ProfileStartupLimitInSeconds=<value in seconds> |
Sets time limit for ReadyNow to wait for compilations to finish at startup as specified in seconds. For infinite, use -1. |
0 |
-XX:ActiveProcessorCount=<number of CPUs> |
Allows for specifying explicitly the number of CPUs available for Zing. Works only with the container support (i.e., if -XX:-UseContainerSupport is not specified) and overrides the automatic CPU detection logic in the JVM. |
-1 |
-XX:[+/-]UseContainerSupport |
Turns off using container-specific information about available CPUs instead of using the information about the whole system. Enabled by default. |
true |
-XX:[+/-]DashVersionSilenceLicenseErrors |
Starting with Zing 18.07.0.0, Zing diagnoses licensing problems if run with -version option: it prints a warning and exits with an error code. If this option is specified together with -version, the JVM ignores licensing problems (specifically the warning is not printed) and exits with 0. Setting the ZING_DASH_VERSION_SILENCE_LICENSE_ERRORS environment variable has the same effect. |
false |
-XX:[+/-]PreserveFramePointer |
(Available since Zing 17.03.0.0; requires ZST 5.18.0 or later) The flag is needed for producing flame graphs with the Linux perf utility and for similar performance analysis tools which rely on stackwalking to record Java method invocations, the time percentage spent in them, and their use of Linux system function calls. |
false |
-XX:[+/-]UseLLVMBasedDisassembler |
Turns the LLVM-based disassembler off. Starting with Zing 18.07.0.0, the default disassembler is changed from Zing internal to LLVM-based. |
true |
-XX:PrintAssemblyOptions=intel <diagnostic> |
Changes disassembly syntax from AT&T to intel. This flag is diagnostic and must be preceded by -XX:+UnlockDiagnosticVMOptions . |
|
-XX:[+/-]UseModifiedThreadLocal |
Internally polls on a ReferenceQueue to determine if a key object has been garbage collected rather than polling by checking for NULL through the Reference.get() API, that can unintentionally prevent the weakly reachable key from being garbage collected. The flag is more friendly to garbage collectors that perform marking concurrently. |
true |
-XX:[+/-]UseSpecialArrayCopy |
Indicates which version of arraycopy of objects intrinsic works with. When set to true, it stands for a new vectorized intrinsic version. When set to false, it stands for the old scalar version. |
true |
-Xnativevmflags:[ignore|error|warn] |
If -Xnativevmflags:error is specified and Zing detects an option that it does not support, it does not launch and generates the following type of message:
HotSpot™ 64-Bit Tiered VM error: Unsupported native VM option ‘+UseParNewGC’
If -Xnativevmflags:warn is specified as a last option in the command line, it enables a warning message for each OpenJDK JVM option ignored by Zing. It prints a warning message while your application starts normally, for example:
$ /opt/zing/zing-jdk8/bin/java -XX:+UseParallelGC -Xnativevmflags:warn -version
Zing 64-Bit Tiered VM warning: Ignoring unsupported native VM option '+UseParallelGC'
java version "1.8.0-zing_18.12.0.0"
Zing Runtime Environment for Java Applications (build 1.8.0-zing_18.12.0.0-b4)
Zing 64-Bit Tiered VM (build 1.8.0-zing_18.12.0.0-b9-product-azlinuxM-X86_64, mixed mode)
|
ignore |
-XX:[+/-]ResetSignalMaskAtLaunch |
Clears the signal mask to enable SIGQUITs when set to true. |
true |
-XX:ProfilePreMainTier2ExtraCompilerThreads=<number of threads> |
Enables the use of extra threads for compilations for C2 and Falcon during the pre-main phase when ReadyNow triggers and executes different activities.
This option is complementary to CIMaxCompilerThreads .
In pre-main phase when your code is not yet being executed and GC is silent, the total amount of C2/Falcon compiler threads is equal to the sum of CIMaxCompilerThreads and ProfilePreMainTier2ExtraCompilerThreads . Note that the sum is capped to match the number of CPUs available for Zing on a machine.
When the pre-main phase is done (i.e., ProfileStartupLimitInSeconds is exhausted) and your main is started, the total amount of compiler thread goes back to standard CIMaxCompilerThreads . |
2 |
-XX:ProfileWorkerThreads=<number of threads> |
When this option value is greater than 0, it allows ReadyNow to use multiple concurrent background threads to asynchronously trigger and execute different ReadyNow-related activities such as early class loading, class initializations, or trigger compilations.When the flag value is set to 0, old synchronous event’s triggering and/or processing is used.
The default value is equal to the minimum number of CPUs available for Zing on a machine. |
4 |
-XX:[+/-]RunVMErrorOnUnhandledSignals |
Does error reporting for SIGABRT, SIGFPE, and SIGTRAP signals if there are no user defined handlers installed. |
true |
-XX:[+/-]SafelyTrustEffectivelyFinalFields |
Enables effectively final optimizations for private fields which are initialized inside a constructor or class initializer, but are otherwise read only. The effectively final family of optimizations allows the VM to perform compiler optimization as if the fields were constants, but deoptimize if a later write is detected at runtime. |
true |
-XX:[+/-]UseOpenJSSE |
Enables the OpenJSSE provider that supports TLS 1.3, see https://github.com/openjsse/openjsse for details. |
false |
-XX:[+/-]UseLegacy8uJSSE |
Enables the Legacy8uJSSE provider that includes the 8u252 JSSE provider implementation without TLS 1.3 support as a fallback measure, and the non-default OpenJSSE provider previously included in Zing 8 distributions for non-default support for TLS 1.3. See Using Version 1.3 of Transport Layer Security (TLS) Protocol for details. |
false |
-XX:MaxRAMPercentage=<percentage of the memory limit> |
Adjusts the maximum heap size (if not explicitly specified) based on the configured cgroup memory limit. If Xmx is not specified, the VM heap size limit is calculated as (MaxRAMPercentage / 100) * cgroups_limit . |
25 |
-XX:[+/-]AlignArrayStart |
Enables 64-bit alignment of the starting point of any array in the heap memory. |
true |
-XX:HserrRawCodeWindowSize=<size in bytes> |
Specifies the size of raw x86 instructions to dump into hs_err file. |
512 |
-XX:MlockLevel=<level> |
Selects the memory locking strategy during JVM initialization:
-
0 - Do not attempt any mlock in the JVM.
-
1 - Lock only libjvm.so text region (can mlock up to 20 MB).
-
2 - Lock all existing memory regions before JVM initialization (can mlock up to 150MB).
-
3 - Lock all existing memory regions at the end of JVM initialization (can mlock up to 500 MB with ZST mode, additionally locks the complete Xmx with non-ZST mode).
Note that for the mlock operation to succeed the user should have permission to lock the required amount of memory in RAM. Check the ulimit l setting before starting the JVM with the MlockLevel option. Only a privileged user can increase this limit.
By default, no error message is printed if the mlock operation fails. Adding 1000 to the values above results in the same operation performed with errors, if any, printed to stderr. For example, specifying -XX:MlockLevel=1001 will print a warning if locking libjvm.so text region fails but -XX:MlockLevel=1 will not. |
1 |
-XX:[+/-]KeepCodeEntrantOnAsyncExceptions |
Keeps code of the compiled method entrant for further utilization (instead of making it non-entrant) in the case when an asynchronous exception (OutOfMemoryError , StackOverflowError ) occurs during the execution of the JIT-compiled version of the method. |
false |
-XX:[+/-]ProfileExitOnInputError |
Exits when an input profile is specified but cannot be found or is malformed. The option is applicable when file_name is missing for -XX:ProfileLogIn=<filename> . |
false |
-XX:[+/-]UseFastJNIAccessors |
Enables JNI Get<type>Field function optimization. When the optimization is enabled, the function tries to quickly access the field value first. If it is not possible (e.g., garbage collection is in progress), the value is retrieved with the standard procedure. |
true |
-XX:[+/-]UseSpecialHashSet |
Enables optimization for a special HashSet filling pattern when elements of the input collection are frequently added into an empty HashSet. |
false |
-XX:[+/-]UseThreadStateNativeWrapperProtocol |
Enables lock-less JNI transitions.
This flag needs a minimum of 4K available lockable memory to be enabled. Otherwise, the flag ergonomically resets to false. |
true |
-XX:[+/-]UseKestrelC2 |
Enables a newer C2 implementation introduced to Zing in 2020. It is based on a lightweight use of the LLVM backend, and typically produces faster code than UseSeaOfNodesC2 while keeping compilation effort at similar levels. UseKestrelC2 generally exhibits a significantly lower compilation-time CPU consumption compared to Falcon.
This option is complementary to UseC2. |
true |
-XX:[+/-]UseSeaOfNodesC2 |
Note
|
Deprecated since 24.02.0.0
|
Enables the traditional C2 implementation that has been part of Zing since 2010.
This option is complementary to UseC2. |
false |
-XX:ZingTestingGracePeriodSec=<value in seconds> |
Specifies the Zing testing grace period, in seconds (up to 3600). |
0 |
-XX:[+/-]UseFastJNIExceptionCheck |
Enables the JNI ExceptionCheck function optimization. When the optimization is enabled, the function tries to quickly check for a synchronous pending exception. If an async exception is set, the exception check happens with the standard procedure. |
true |
-XX:[+/-]MaxFDLimit |
Enables the attempt to set the soft limit for the number of open file descriptors to the hard limit. |
true |
-XX:[+/-]UseLegacyJNINameEscaping |
Enables skipping the extra mapping check to avoid compatibility issues due to new mapping rules for JNI methods introduced in JDK-8233624. See New mapping rules from a Java native method name to a C native library implementation function name for more information about new mapping rules. |
false |
-XX:[+/-]GPGCReportJavaHeapPoolMXBean |
Exposes the total sum of memory usage of all MemoryPoolMXBean memory pools to the java.lang.management interface. |
false |
-XX:GPGCHeapJavaPoolMXBeanName=<value> |
Specifies the name of the total java heap pool only when GPGCShowJavaHeapPoolMXBean is enabled. |
0 |
-XX:GPGCNewGenPoolMXBeanName=<value> |
Specifies the name of the new generation in the java heap pool. |
0 |
-XX:GPGCOldGenPoolMXBeanName=<value> |
Specifies the name of the old generation in the java heap pool. |
0 |
-XX:GPGCPermGenPoolMXBeanName=<value> |
Specifies the name of the permanent generation in the java heap pool. |
0 |
-XX:[+/-]UseModifiedRuleBasedCollator |
Enable the use of the custom implementation of RuleBasedCollator to improve performance over OpenJDK’s text collation and normalization. |
true |
-XX:[+/-]UseModifiedInputStreams |
Use unsynchronized ByteArrayInputStream if it is used as an input of ObjectInputStream as a custom implementation. |
false |
-XX:[+/-]UseContainerCpuShares |
Consider CPU shares when computing available processors inside a cgroup. |
false |
-XX:[+/-]PreferContainerQuotaForVMInternalCPUCount |
Use CPU quota divided by period as base for calculating VM internal thread counts in containers. |
true from Azul Platform Prime 23.08.0.0. |
-XX:[+/-]PreferContainerSharesForVMInternalCPUCount |
Use CPU shares divided by 1024 as base for calculating VM internal thread counts in containers. |
false |
-XX:MallocArenaMax=<number of memory pools> |
Defines the maximum number of memory pools available for glibc. |
0 |
-XX:[+/-]OptimizeIdentityHashForDistribution |
Enables an alternate implementation for System.identityHashCode() which provides better distribution of objects at the cost of making the identity hash calculation itself slower. |
enable |