Exploring JITServer on the new Linux on IBM z16 Platform

With the recent 0.32 release of Eclipse OpenJ9, the JITServer technology was officially released and made available for the Linux on IBM z System/LinuxONE platforms. This release also coincides with the recently launched IBM z16 technology. This blog will provide an overview of the JITServer technology and demonstrate some of its key benefits using the…

Copyforward&Mark Hybrid Collector

Background Xgcpolicy:balanced Open J9’s Balanced GC policy is a region based, incremental generational collector, unlike the default generational concurrent policy (gencon), which is probably best suited for the most traditional java application, Balanced GC is designed to be used on large heap to reduce maximum pause times. In Balanced GC The Java heap is divided…

Balanced GC performance improvements: Eden + heap sizing improvements

Open J9’s Balanced GC policy is a region based, generational collector, which aims to provide a bound on worst case pause times, by eliminating the need for frequent global garbage collections. A more detailed description of how Balanced GC policy works, along with some of its advantages over the Gencon GC policy, can be found…

Setting up an OpenJ9 Development Environment with Visual Studio Code + Docker + CMake

Setting up a proficient development environment on a large project such as OpenJ9 with so many pieces in play can be a daunting task. Often times, setting up such a development environment and being able to navigate the codebase with familiar tools and with the full power of an IDE is worth the effort in terms of productivity. This blog post will guide you through setting up a development environment with a one-click build trigger, full Intellisense support, and full debugging support using Visual Studio Code, Docker, DevContainers extensions, and CMake.

Manipulating the Class File with AsmTools

A Java class file is represented with a hardware & OS independent binary format to be loaded & interpreted at runtime. Except the magic number (the first 4 bytes such as CAFEBABE) and the version number (the 8th byte) which are visible or can be manually edited in a hexadecimal way, modifying the majority of…