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 | x86: 256 KB ![]() 256 KB ![]() 512 KB ![]() All Java versions: AArch64: 256 KB IBM Z®: 256 KB PPC: 512 KB |
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:+UseContainerSupportis 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-Xmxoption to overwrite the 25 GB limit. -
If you have set the -XX:+OriginalJDK8HeapSizeCompatibilityModeoption 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.
256 KB
512 KB