IntelliJ IDEA
IntelliJ IDEA – the Leading Java and Kotlin IDE, by JetBrains
JetBrains Technology Day for Java – OpenJDK: In The New Age of Concurrent Garbage Collectors
On the 10th July 2020, JetBrains hosted a Technology Day for Java. We had 10 presentations and the videos for them are available here. Over the coming weeks, in no particular order, we’d like to share with you extra resources that our speakers kindly provided and any links to further reading or code samples.
We hosted Monica Beckwith talking to us about garbage collection in OpenJDK Hotspot. Java has always been very good at taking out the trash with garbage collection functionality integrated from the beginning, however, it has evolved! Monica took us through the various garbage collection algorithms as well as the design goals for each, before providing comparisons between them.
We learned the difference between the Stop The World Garbage Collection (STW) and Concurrent garbage collection approaches in Java and the different ways that garbage collectors slice up the heap, move objects around, and what the priorities can be when it comes to reclaiming space.
Monica compared the G1 GC collector, Shenandoah GC and Z GC with respect to the following criteria:
- Regionalised (with regards to the heap)
- Generational (with regards to the heap)
- Compaction (Stop the World versus Concurrent)
- Target pause times
- Concurrent marking algorithm
This side by side comparison was very useful to help us understand the bigger picture and differences at a higher level between the garbage collectors that are available to us. Monica then took us through a technical deep-dive on the various criteria for each garbage collector as well as some examples.
Further resources
- https://www.youtube.com/watch?v=VCeHkcwfF9Q
- https://www.usenix.org/legacy/events/vee05/full_papers/p46-click.pdf
- http://mail.openjdk.java.net/pipermail/zgc-dev/2017-December/000047.html
- http://hg.openjdk.java.net/zgc/zgc/file/ffab403eaf14/src/hotspit/share/gc/z/zBarrier.cpp
- https://wiki.openjdk.java.net/display/zgc/Main
- https://www.azul.com/files/c4_paper_acm1.pdf
What our audience thought of Monica’s presentation
I am just catching up on some #JBTechDayforJava sessions that I missed. Thanks @mon_beck for the great session on Java GC! This is an area I’ve known the least about. The details on each GC type and comparison of them helps so much. Thank you! https://t.co/xQ51dzaYpB
— Dan Torrey (@danotorrey) July 12, 2020
Amazing presentation @mon_beck @eMalaGupta
“new #ZGC and #ShenandoahGC garbage collectors (GCs) in @OpenJDK HotSpot VM. She’ll also compare them to G1 GC (the current default GC).”#JBTechDayforJava #JetBrainsLovesJava #Java #JavaBaires #JavaBsAs #JavaProgrammers pic.twitter.com/0OTGnlAmpe— C:\Users\Mauri\Java (@MauriDeveloper) July 10, 2020
@mon_beck is my go-to-person when it comes to learning about Garbage collection in Java.
She nailed this presentation comparing multiple Concurrent Garbage collectors! https://t.co/QER26toioE
— Mala Gupta (@eMalaGupta) August 10, 2020