Affiliation:
1. Australian National University, Canberra, Australia
2. Microsoft Research, Redmond, WA, USA
Abstract
Despite some clear advantages and recent advances, reference counting remains a poor cousin to high-performance tracing garbage collectors. The advantages of reference counting include a) immediacy of reclamation, b) incrementality, and c) local scope of its operations. After decades of languishing with hopelessly bad performance, recent work narrowed the gap between reference counting and the fastest tracing collectors to within 10%. Though a major advance, this gap remains a substantial barrier to adoption in performance-conscious application domains.
Our work identifies heap organization as the principal source of the remaining performance gap. We present the design, implementation, and analysis of a new collector, RC Immix, that replaces reference counting's traditional free-list heap organization with the line and block heap structure introduced by the Immix collector. The key innovations of RC Immix are 1) to combine traditional reference counts with per-line live object counts to identify reusable memory and 2) to eliminate fragmentation by integrating copying with reference counting of new objects and with backup tracing cycle collection. In RC Immix, reference counting offers efficient collection and the line and block heap organization delivers excellent mutator locality and efficient allocation. With these advances, RC Immix closes the 10% performance gap, matching the performance of a highly tuned production generational collector. By removing the performance barrier, this work transforms reference counting into a serious alternative for meeting high performance objectives for garbage collected languages.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
5 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Baobab Merkle Tree for Efficient Secure Memory;IEEE Computer Architecture Letters;2024-01
2. Linear-Mark: Locality vs. Accuracy in Mark-Sweep Garbage Collection;Proceedings of the International Symposium on Memory Systems;2023-10-02
3. Quantifying the interpretation overhead of Python;Science of Computer Programming;2022-03
4. Deconstructing the garbage-first collector;Proceedings of the 16th ACM SIGPLAN/SIGOPS International Conference on Virtual Execution Environments;2020-03-03
5. Removing runtime overhead for optimized object queries;Proceedings of the 2016 ACM SIGPLAN Workshop on Partial Evaluation and Program Manipulation;2016-01-11