This talk is meant to demystify how garbage collection (GC) works in a Java runtime. The beginning of the talk will be focused on what GC is, discuss truths and myths, and how it is useful for the lifetime of a program. After laying out the basics I’ll explain how each GC algorithm work and how they can be implemented in a real world JVM (e.g. OpenJ9, Hotspot). 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? These are some of the questions that I will be addressing during this talk. I will do so 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; by using the more appropriate policy for your application, it can improve its performance considerably. Lastly, I will conclude the talk by mentioning one advanced feature of OpenJ9 GC 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 how the JVM manages its memory and be able to choose the more appropriate GC policy for your application. The talk is target for anyone who’s interested in JVMs (not advanced knowledge required).
Demystifying Garbage Collection in Java
Objective of the presentation:
Are you curious to know whats happening under the rood of a Java application in terms of memory management? How objects are managed (allocated deallocated), how Java abstracts away the illusion of not needing an explicit memory management allocator? And which memory manager (Garbage collector policy) best suits your application? Well, this talk is for you. This talk will be aimed to anyone with some knowledge of the Java programming language, being that basic, intermediate and even advanced. The talk starts by covering the basics and gradually transition to more advanced topics.
Attendee pre-requisites - If none, enter "N/A":
Basic programming knowledge