Victoria/Vancouver Island JUG Understanding Java Garbage Collection
Garbage Collection is an integral part of application behavior on Java platforms, yet it is often misunderstood. As such, it is important for Java developers to understand the actions you can take in selecting and tuning collector mechanisms, as well as in your application architecture choices.
Understanding Garbage Collection – And What You Can Do About It
Speaker: Matt Schuetze, Product Manager, Azul Systems
In this presentation, Matt Schuetze reviews and classifies the various garbage collectors and collection techniques available in JVMs today. Following a quick overview of common garbage collection techniques including generational, parallel, stop-the-world, incremental, concurrent and mostly-concurrent algorithms, he defines terms and metrics common to all collectors. He classifies each major JVM collector’s mechanisms and characteristics and discuss the tradeoffs involved in balancing requirements for responsiveness, throughput, space, and available memory across varying scale levels. Matt reviews when and how Moore’s Law for memory ran into the Application Memory Wall, and discusses means to resume application scale to match modern x64 hardware capacities. Matt concludes with some pitfalls, common misconceptions, and “myths” around garbage collection behavior, as well as examples of how some good choices can result in impressive application behavior.
Live session held November 20, 2013 in Victoria, British Columbia, Canada. Enthusistic Q&A with the Vancouver Island JUG (“VIJUG”) members explored the JVM, common GC efforts, and performance impacts across diverse workloads: live action web games, oil and gas modeling, electric retail wheeling, parallelism using Scala as source language, emergence of InvokeDynamic as critical technology, and other real world potential for both Zing and Zulu products. Famous quote: “If I had only known about Zing 4-5 years ago, my job would have been much easier.”