What's new in version 0.15.1

The following new features and notable changes since version 0.14.0 are included in this release:

Features and changes

Performance improvements for JVMTI watched fields

OpenJ9 version 0.14.0 introduced the -XX:[+|-]JITInlineWatches option, which, when enabled, turned on experimental JIT operations to improve the performance of JVMTI watched fields. Following successful results, this option is now enabled by default. This option is now also supported on z/OS® and Linux for IBM Z®, in addition to x86 platforms (Windows®, macOS®, and Linux).

Support for pause-less garbage collection on IBM Z systems

Support for Concurrent scavenge mode is now extended to Linux on IBM Z® systems and z/OS®. For more information, see -Xgc:concurrentScavenge.

Support for OpenJDK HotSpot options

For compatibility, the -XX:OnOutOfMemoryError OpenJDK HotSpot option is now supported by OpenJ9.

Support for Transparent Huge Pages (THP)

The VM now supports the allocation of huge pages on Linux when you use the madvise (/sys/kernel/mm/transparent_hugepage/enabled) setting. To enable this feature, set -XX:+TransparentHugePage on the command line when you start your application. This option is currently not enabled by default.

Automatically setting an initial heap size

OpenJ9 can now learn and set an appropriate initial heap size for an application as an alternative to a user manually sizing and setting an -Xms value. The VM records the size of the heap when startup processing ends, writing this data to the shared classes cache. An average value is set over a few restarts, helping to ensure that the value used for the initial heap size is as accurate as possible. The heap size recorded is specific to the application command line, therefore a different hint is stored for every unique command line.

To turn on this behavior, set the -XX:+UseGCStartupHints option on the command line when you start your application.

Removal of -Xdiagnosticscollector option

This option was redundant and has now been removed. If you try to use this option on the command line, the VM outputs this error message:

JVMJ9VM007E Command-line option unrecognised: -Xdiagnosticscollector

Change in behaviour of -XX:IdleTuningCompactOnIdle

-XX:[+|-]IdleTuningCompactOnIdle is now no longer effective when -XX:+IdleTuningGcOnIdle is not specified.

Heuristics for compaction during idle GC

OpenJ9 now automatically compacts the heap when certain triggers are met during idle garbage collection (GC). As a result of this change, -XX:[+|-]IdleTuningCompactOnIdle is deprecated.