CAUTION: This site hosts draft documentation for the next release. For published content of the latest release, visit www.eclipse.org/openj9/docs

Default settings for the OpenJ9 VM

The following tables provide a quick reference to the default settings for the VM when it is first installed.

The last 2 columns show whether the default setting can be changed by a command-line parameter or an environment variable. Note that if both are set, the command-line parameter always takes precedence.

VM setting Default Command line Env. variable
Javadump Enabled yes yes
Heapdump Disabled yes yes
System dump Enabled yes yes
Snap traces Enabled yes yes
JIT dump Enabled yes yes
Verbose output Disabled yes no
Compressed references (See Note 1) yes yes
Boot classpath search Disabled yes no
JNI checks Disabled yes no
Remote debugging Disabled yes no
Strict conformance checks Disabled yes no
Quickstart Disabled yes no
Remote debug info server Disabled yes no
Reduced signaling Disabled yes no
Signal handler chaining Enabled yes no
Classpath Not set yes yes
Class data sharing Disabled yes no
Accessibility support Enabled no yes
JIT compiler Enabled yes yes
AOT compiler (See Note 2) Enabled yes no
JIT debug options Disabled yes no
Java2D max size of fonts with algorithmic bold 14 point no yes
Java2D use rendered bitmaps in scalable fonts Enabled no yes
Java2D freetype font rasterizing Enabled no yes
Java2D use AWT fonts Disabled no yes

Notes:

  1. On AIX®, Linux®, macOS®, and Windows™: Enabled for -Xmx values ≤ 57 GB, otherwise disabled.

    On z/OS®: Enabled for -Xmx values ≤ 25 GB, otherwise disabled. With APAR OA49416, enabled for -Xmx values ≤ 57 GB.

  2. AOT is not used by the VM unless shared classes are also enabled.

VM setting AIX Linux macOS Windows z/OS Command line Env. variable
Default locale None None None N/A None no yes
Time to wait before starting plug-in N/A Zero N/A N/A N/A no yes
Temporary directory /tmp /tmp /tmp c:\temp /tmp no yes
Plug-in redirection None None None N/A None no yes
IM switching Disabled Disabled Disabled N/A Disabled no yes
IM modifiers Disabled Disabled Disabled N/A Disabled no yes
Thread model N/A N/A N/A N/A Native no yes
Initial stack size for Java Threads (32/64-bit). Use -Xiss<size> 2 KB 2 KB 2 KB 2 KB 2 KB yes no
Maximum stack size for Java Threads (32-bit). Use -Xss<size> 320 KB 320 KB N/A 320 KB 320 KB yes no
Maximum stack size for Java Threads (64-bit). Use -Xss<size> 1024 KB 1024 KB 1024 KB 1024 KB 1024 KB yes no
Stack size for OS Threads (32-bit). Use -Xmso<size> 256 KB 256 KB N/A 32 KB 256 KB yes no
Stack size for OS Threads (64-bit). Use -Xmso<size> 256 KB 256 KB 256 KB 256 KB 1 MB yes no
Initial heap size. Use -Xms<size> 8 MB 8 MB 8 MB 8 MB 8 MB yes no
Maximum Java heap size. Use -Xmx<size> See Notes See Notes See Notes See Notes See Notes yes no
Page size for the Java object heap and code cache (For restrictions, see the -Xlp:codecache and -Xlp:objectheap options). Operating system default Architecture: x86: 2MB, IBM Z®: 1MB, Other architectures: Operating system default 4 KB Operating system default 1M pageable yes no

Notes:

The default value of -Xmx :

  • The value is 25% of the available memory with a maximum of 25 GB. However, where there is 2 GB or less of physical memory, the value set is 50% of available memory with a minimum value of 16 MB and a maximum value of 512 MB.

  • On Linux® sytems, if the VM is running in a container and `-XX:+UseContainerSupport is enabled, the value is 75% of the container memory limit, with a maximum of 25 GB. However, if the container memory limit is less than 1 GB, the value is 50% of the container memory limit. If the container memory limit is between 1GB and 2GB, the value is the container memory limit minus 512 MB.

  • The default value is capped at 25 GB, which is the limit of heap size for 3-bit shift of compressed references (see -Xcompressedrefs), to prevent silent switching to 4-bit shift of compressed references, which has possible performance penalties. You can use the -Xmx option to overwrite the 25 GB limit.

  • Start of content that applies only to Java 8 (LTS) If you have set the -XX:+OriginalJDK8HeapSizeCompatibilityMode option for compatibility with earlier releases, the value is half the available memory with a minimum of 16 MB and a maximum of 512 MB. End of content that applies only to Java 8 (LTS)

Available memory is defined as being the smallest of two values: The real or physical memory or the RLIMIT_AS value.