Shenandoah GC 2.0
The major problem for large Java applications is G… (wait for it…) C pauses. Large heaps storing lots of live data, the failure to adhere to generational hypothesis, fragmentation due to old objects coming and going, exacerbate the issues even more. OpenJDK GCs managed to solve the first large part of the puzzle, concurrent marking — the ability to estimate the object reachability graph without stopping the application for a long time. Shenandoah is a new low-pause collector that tries to solve the second large part of the puzzle — the ability to move the objects without stopping the application, cutting the GC pauses even more. This talk is a basic introduction in Shenandoah’s design choices, important internal details, performance benefits and trade-offs.
Shenandoah has undergone substantial changes since the orginal paper by Christine Flood. Specifically we have a new barrier scheme, and have eliminated the extra forwarding pointer word per object, thus substantially reducing memory footprint. This talk will also look at those recent changes in Shenandoah and what’s in it for you.
Bio: Roman Kennke is Prinipal Software Engineer at Red Hat, where he worked and works on OpenJDK and several related projects, including Thermostat, the Zero and Shark ports of OpenJDK, and currently on the Shenandoah GC. In past lifes, he worked at aicas (realtime Java VM), Sun Microsystems (Webstart, Swing) and JP Morgan.
Tue 24 MarDisplayed time zone: Belfast change
08:50 - 10:30
Java HotSpot VMMoreVMs at W1
Chair(s): Fabio Niephaus Hasso Plattner Institute, University of Potsdam
Edd Barrett King's College London, Fabio Niephaus Hasso Plattner Institute, University of Potsdam
|Shenandoah GC 2.0Invited Talk|
Roman Kennke Red Hat, Inc.
|Enhancement of OpenJDK Biased Locking for Infrequent Lock Contention|
Ting Wang IBM, Michihiro Horie IBM Research - Tokyo, Kazunori Ogata IBM Research, Japan, Hao Chen Gui IBM, Xiao Ping Guo IBM, Yang Liu IBM