Tue 23 Mar 2021 17:00 - 17:30 at Virtual Space A - Memory and Garbage Collection Chair(s): David Leopoldseder

This talk is meant to demystify how garbage collection (GC) works. After laying out the basics I’ll explain how each GC algorithm through a real-world example by using OpenJ9 Java Virtual Machine (JVM). How are these algorithms put together to make up a good GC configuration, and how one can better select a configuration/policy for their application? What design decisions need to be made when we implement a new GC policy? These are some of the questions that I will be addressing during this talk. I will do so by not only explaining how each of these algorithms work, but also by tying these algorithms to OpenJ9 GC policies and compare them to other policies such as G1, ZGC and Shenandoah. Different programs have different behaviours; therefore, choosing the more appropriate policy for your application, will improve its performance considerably. Lastly, I will conclude the talk by mentioning one advanced GC feature called double mapping arraylets, which is a way to improve memory management of large arrays in region-based GCs. By the end of the talk, you will have a better understanding on the different GC algorithms as well as on how a runtime like the JVM can manage its memory. You’ll also be able to choose the more appropriate GC policy/configuration for your application.

Software developer at IBM Canada in runtimes OpenJ9 team particularly focusing on Garbage Collection technology. I have also completed my masters in computer sciences from University of Waterloo with focus in Machine Learning. There are several topics that interests me, and among them are systems, compilers, programming languages, and machine learning. And a fan fact about me is that I’m a former professional tennis player.

Conference Day
Tue 23 Mar

Displayed time zone: Belfast change