Default settings for the Eclipse 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:
-
On AIX®, Linux®, macOS® x86, 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.
On macOS AArch64 (Apple silicon): Disabled.
-
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> |
512 KB | 512 KB (256 KB on IBM Z®) Earlier Java versions: 256 KB (512 KB on PPC) |
Architecture: x86: 512 KB, AArch64 (Apple silicon): 256 KB Earlier Java versions: 256 KB |
512 KB Earlier Java versions: 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: 2 MB, IBM Z: 1 MB, Other architectures: Operating system default | Architecture: x86: 4 KB, AArch64 (Apple silicon): 16 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. -
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.
Available memory is defined as being the smallest of two values: The real or physical memory or the RLIMIT_AS value.