IBM has introduced no-cost Semeru Runtimes that use class libraries from OpenJDK together with the Eclipse OpenJ9 Java Virtual Machine (JVM). The runtimes, based on OpenJ9, may be used as an alternative for runtimes based on HotSpot. Previously, AdoptOpenJDK produced binaries with OpenJ9, however that’s no longer legally allowed since their move to the Eclipse Foundation under the new name, Adoptium.
IBM provides the Semeru Runtimes based on Java 8, 11, and 16 for Linux, Windows, macOS, and AIX as well as various architectures. Docker images will soon follow. Two flavors are available: an Open Edition with an open-source GPLv2+Classpath extension license and a Certified Edition with an IBM license. Both versions pass the Eclipse AQAvit test suite and the Certified Edition is TCK-certified as well. The Certified Edition replaces the former IBM SDK Java Technology Edition Version 11. There are no usage restrictions and the runtimes can be used anywhere, from development until production. IBM offers optional commercial support through IBM’s Runtimes for Business.
The performance overview created by the Eclipse OpenJ9 project compares the OpenJ9 and Hotspot virtual machines for OpenJDK 11. OpenJ9 starts about twice as fast due to shared classes cache and ahead-of-time (AOT) compilation. After startup and during load, the footprint is tens of percentages lower compared to Hotspot. Lastly, the peak throughput is reached quicker with OpenJ9, although Hotspot has a higher throughput in the long term. OpenJ9 also shows similar benefits when used together with Quarkus.
Recent versions of OpenJ9 introduced improvements for running inside containers. One of them is the
-XX:+ClassRelationshipVerifier command-line option to lazily verify class relationships, as some classes are never loaded. This improves startup times. The Shared Class Cache (SCC) is used to cache Java classes, AOT compiled code, etcetera. The cache persists even after the JVM is stopped to ensure continued startup time performance, the next time information is loaded from memory instead of disk. Tests from OpenJ9 show that these improvements result in a 45 percent faster startup time when comparing OpenJ9 with HotSpot.
At JavaOne 2016, John Duimovich, then Java CTO at IBM, announced their proprietary J9 Java Virtual Machine would be open-sourced and donated to the Eclipse Foundation. IBM has continued to work on OpenJ9 ever since. IBM’s WebSphere Liberty and WebSphere Application Server will also use the Semeru Runtimes.
More information is available in the getting started guide.