Reconsidering Garbage Collection in Julia A Practitioner Report
Date
Authors
de Souza Amorim, Luis Eduardo
Lin, Yi
Blackburn, Stephen M.
Netto, Diogo
Baraldi, Gabriel
Daly, Nathan
Hosking, Antony L.
Pamnany, Kiran
Smith, Oscar
Journal Title
Journal ISSN
Volume Title
Publisher
Association for Computing Machinery (ACM)
Access Statement
Abstract
Julia is a dynamically-typed garbage-collected language designed for high performance. Julia has a non-moving tracing collector, which, while performant, is subject to the same unavoidable fragmentation and lack of locality as all other non-moving collectors. In this work, we refactor the Julia runtime with the goal of supporting different garbage collectors, including copying collectors. Rather than integrate a specific collector implementation, we implement a third-party heap interface that allows Julia to work with various collectors, and use that to implement a series of increasingly more advanced designs. Our description of this process sheds light on Julia’s existing collector and the challenges of implementing copying garbage collection in a mature, high-performance runtime. We have successfully implemented a third-party heap interface for Julia and demonstrated its utility through integration with the MMTk garbage collection framework. We hope that this account of our multi-year effort will be useful both within the Julia community and the garbage collection research community, as well as providing insights and guidance for future language implementers on how to achieve high-performance garbage collection in a highly-tuned language runtime.
Description
Keywords
Citation
Collections
Source
Type
Book Title
Proceedings of the 2025 ACM SIGPLAN International Symposium on Memory Management (ISMM '25)
Entity type
Publication