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…

Startup Performance of Tomcat in Docker

Tomcat startup time is reduced by ~30% by enabling the Shared Class Cache (SCC) in the Docker images. In my earlier blog , I measured the Performance of Tomcat with Tradelite7 Application without using any docker images and we saw the boost of Startup time with default Shared Cache in OpenJ9. In this article, let’s…