What are arraylets? When an array or any object is created in a Java program, one of the places the Garbage Collector (GC) stores objects is in the heap. Individual objects are stored in a contiguous block of memory, which makes it easier to reference them. Arrays as such are also stored in a contiguous…
Category: gc
Brief Intro to JITaaS and Double Map
Continuing my team’s work from the 2018 Extreme Blue (EB) term, I spent the first two weeks of my co-op wrapping up our JITaaS project so that it could be merged. During EB, my team was responsible for implementing a prototype for JITaaS (Just in Time Compiler as a Service). Runtimes are comprised of various…
Concurrent Scavenge Garbage Collection Policy
This post is meant to serve as a technical overview of the Concurrent Scavenge (CS) Garbage Collection (GC) policy, from the perspective of a Just-In-Time (JIT) compiler. It explains various CS and GC concepts, serving as background to later discussion on implementation details in JIT compiler’s Code Generator (CodeGen) and Optimizer, as well as the…
GC Internship: Read Barrier Verification
In the fall of 2018, I had the opportunity to intern with OpenJ9’s Garbage Collection (GC) team. OpenJ9 is a Java Virtual Machine (JVM). At the time, I was a fourth year computer engineering student at the University of Waterloo. Before working with the GC team, I had also worked in OpenJ9’s Release Engineering team….
gcpolicy:nogc
In Eclipse OpenJ9 release Version 0.9.0, a new gcpolicy:nogc is supported for Java 8 and above. The new gcpolicy:nogc is implemented based on the requirement of JDK Enhancement Proposal 318: Epsilon: A No-Op Garbage Collector. It maintains a specific garbage collector that handles only memory allocation and heap expansion, but doesn’t actually reclaim any memory back….