Reconsidering Garbage Collection in Julia: A Practitioner Report

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.

Authors

Institutions

Publication Details

Published
2025-06-13
DOI
https://doi.org/10.1145/3735950.3735957
Primary Topic
Ancient Mediterranean Archaeology and History
Type
article
Field-Weighted Citation Impact
0.00
Controls
|||
ALL TIME
JAN
FEB
MAR
APR
MAY
JUN
JUL
AUG
SEP
OCT
article

Reconsidering Garbage Collection in Julia: A Practitioner Report

Kiran Pamnany, Luís Eduardo de Souza Amorim, Stephen M. Blackburn, Antony L. Hosking et al.
Ancient Mediterranean Archaeology and History
article

Reconsidering Garbage Collection in Julia: A Practitioner Report

Kiran Pamnany, Luís Eduardo de Souza Amorim, Stephen M. Blackburn, Antony L. Hosking, Oscar Smith, Yi Lin, Gabriel Baraldi, Nathan Daly, Diogo Netto
article en

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.

Australian National University (AU)
Openalex Percentile: Top 84%
Ancient Mediterranean Archaeology and History
AI Navigator

Ask Laika to Summarize, Analyze, and Connect papers live on the map.

Summarize Papers & Methodologies

Extract key findings, datasets, and comparative methods across publications.

Benchmark Rankings & Visual Analytics

Rank top research institutions, authors, funders, topics, and journals by Field-Weighted Citation Impact (FWCI) and paper volume with instant charts.

Connect Distant Disciplines

Bridge topological clusters on the map to find hidden collaborative intersections.

Reconsidering Garbage Collection in Julia: A Practitioner Report — Kiran Pamnany, Luís Eduardo de Souza Amorim, et al. · (2025) | TGRS Research Map | TGRS