What's new in version 0.12.x
Version 0.12.0
The following new features and notable changes since version 0.11.0 are included in this release:
- Idle-tuning is enabled by default when Eclipse OpenJ9™ runs in a docker container
- Changes to default shared classes cache directory permissions (not Windows)
- Improved support for pause-less garbage collection
IBM_JAVA_OPTIONS
is deprecated
Features and changes
Improved flexibility for managing the size of the JIT code cache
The JIT code cache stores the native code of compiled Java™ methods. By default, the size of the code cache is 256 MB for a 64-bit VM and 64 MB for a 31/32-bit VM. In earlier releases the size of the code cache could be increased from the default value by using the -Xcodecachetotal
command line option. In this release the size can also be decreased by using this option, with a minimum size of 2 MB. The size of the JIT code cache also affects the size of the JIT data cache, which holds metadata about compiled methods. If you use the -Xcodecachetotal
option to manage the size of the code cache, the size of the data cache is adjusted by the same proportion. For more information, see -Xcodecachetotal
.
Idle-tuning is enabled by default when OpenJ9 runs in a docker container
In an earlier release, a set of idle-tuning options were introduced to manage the footprint of the Java heap when the OpenJ9 VM is in an idle state. These options could be set manually on the command line. In this release, the following two options are enabled by default when OpenJ9 is running in a container:
-XX:[+|-]IdleTuningGcOnIdle
, which runs a garbage collection cycle and releases free memory pages back to the operating system when the VM state is set to idle.-XX:[+|-]IdleTuningCompactOnIdle
, which compacts the object heap to reduce fragmentation when the VM state is set to idle.
By default, the VM must be idle for 180 seconds before the status is set to idle. To control the wait time before an idle state is set, use the -XX:IdleTuningMinIdleWaitTime
option. To turn off idle detection, set the value to 0
.
Changes to default shared classes cache directory permissions (not Windows)
If you do not use the cachDirPerm
suboption to specify permissions for a shared classes cache directory, and the cache directory is not the /tmp/javasharedresources
default, the following changes apply:
- When creating a new cache directory, the default permissions are now stricter.
- If the cache directory already exists, permissions are now unchanged (previously, when a cache was opened using this directory, the permissions would be set to 0777).
For more information, see -Xshareclasses
.
Improved support for pause-less garbage collection
Concurrent scavenge mode is now supported on 64-bit Windows operating systems.
In Eclipse OpenJ9 version 0.11.0, support was added for -Xgc:concurrentScavenge
on Linux x86-64 virtual machines that use compressed references. In this release, support is now available for Linux x86-64 large-heap virtual machines (non-compressed references).
For more information, see the -Xgc:concurrentScavenge
option.
IBM_JAVA_OPTIONS
is deprecated
The VM environment variable IBM_JAVA_OPTIONS
is deprecated and is replaced by OPENJ9_JAVA_OPTIONS
. IBM_JAVA_OPTIONS
will be removed in a future release. For more information about the use of this variable, see the general options in Environment variables.