Replacing Arraylets with OffHeap for Balanced GC Policy: A New Era in Memory Layout

Authors: Abdulrahman Alattas and Aleks Micic Introduction In OpenJ9’s Balanced GC policy, the Java heap is divided into up to 2047 fixed-size regions to reduce pause times and increase the efficiency of garbage collection. This layout poses a challenge for large arrays: if an array exceeds the size of a region, it cannot be allocated contiguously….

Optimizing OpenJ9’s Balanced GC Policy for Throughput with Dynamic Breadth First (DBF) Scan Ordering

Optimizing application throughput continues to be a primary goal for any application developer seeking improved application performance. Before I can talk about the details of DBF scan ordering, there are some terms and concepts that must be discussed first. To understand DBF scan ordering, a base knowledge of Garbage Collection (GC), OpenJ9 GC policies, and…

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…