Distilling the Real Cost of Production Garbage Collectors
Zixian Cai, Stephen M. Blackburn, Michael D. Bond, Martin Maas

TL;DR
This paper introduces a methodology to empirically estimate the true cost of garbage collectors in production, revealing significant overheads and tradeoffs that impact performance and latency.
Contribution
It develops a novel empirical approach to measure and compare the actual costs of different garbage collectors in real-world settings.
Findings
Production GCs add 7-82% overhead in time and 6-92% in CPU cycles.
Newer low-pause GCs are more expensive and sometimes worse for latency.
GC costs can be masked by concurrency and resource provisioning.
Abstract
Abridged abstract: despite the long history of garbage collection (GC) and its prevalence in modern programming languages, there is surprisingly little clarity about its true cost. Without understanding their cost, crucial tradeoffs made by garbage collectors (GCs) go unnoticed. This can lead to misguided design constraints and evaluation criteria used by GC researchers and users, hindering the development of high-performance, low-cost GCs. In this paper, we develop a methodology that allows us to empirically estimate the cost of GC for any given set of metrics. By distilling out the explicitly identifiable GC cost, we estimate the intrinsic application execution cost using different GCs. The minimum distilled cost forms a baseline. Subtracting this baseline from the total execution costs, we can then place an empirical lower bound on the absolute costs of different GCs. Using this…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Parallel Computing and Optimization Techniques · Distributed systems and fault tolerance
