A Unifying Approach to Supporting Multiple Garbage Collectors in AOT-compiled Binaries
This program is tentative and subject to change.
Some language implementations combine garbage collection with ahead-of-time compilation to produce self-contained executables for managed-language programs. In these systems, one can typically choose a garbage collector (GC) only at build time. To use another GC, e.g., for better performance,one needs to build another executable.
In this paper, we present an approach for supporting multiple GCs in the same self-contained executable using unified barriers, object layout, object header, and dynamic dispatch. This enables developers to select a GC at run time. Additionally, isolates, i.e., lightweight virtual machine instances with separate collected heaps but within the same process, can now use different GCs alongside each other.
We evaluate our approach in GraalVM Native Image, supporting the Garbage First (G1) and the Serial GC in the same executable. Our evaluation on the DaCapo Chopin and Renaissance benchmarks shows that G1 has on average no performance change (min. −9 %, max. 14 %). Serial GC shows a peak performance regression of 11 % (min. −10 %, max. 33 %). We believe the simplicity of the approach and that one can now choose the GC at run time and on a per isolate basis make this overhead acceptable.
This program is tentative and subject to change.
Tue 30 JunDisplayed time zone: Brussels, Copenhagen, Madrid, Paris change
16:00 - 17:30 | |||
16:00 30mTalk | A Unifying Approach to Supporting Multiple Garbage Collectors in AOT-compiled Binaries MPLR Thomas Schrott Johannes Kepler University Linz, Christian Häubl Oracle, Hanspeter Mössenböck JKU Linz, Stefan Marr Johannes Kepler University Linz | ||
16:30 30mTalk | Load-Site-Based Filtering of Transiently Hot Objects to Reduce the Effective Working Set MPLR Naoki Nakanishi The University of Tokyo, Takato Hideshima The University of Tokyo, Japan, Tomoharu Ugawa University of Tokyo | ||
17:00 30mTalk | To Compile or Not To Compile: Evaluating Static Heuristics to Reduce Binary Size of Hybrid Execution Systems MPLR Christoph Pichler Johannes Kepler University Linz, Bernhard Urban-Forster Oracle Labs, Paley Li , Roland Schatz Oracle Labs, Stefan Marr Johannes Kepler University Linz | ||