Reconsidering Garbage Collection in Julia A Practitioner Report

dc.contributor.authorde Souza Amorim, Luis Eduardoen
dc.contributor.authorLin, Yien
dc.contributor.authorBlackburn, Stephen M.en
dc.contributor.authorNetto, Diogoen
dc.contributor.authorBaraldi, Gabrielen
dc.contributor.authorDaly, Nathanen
dc.contributor.authorHosking, Antony L.en
dc.contributor.authorPamnany, Kiranen
dc.contributor.authorSmith, Oscaren
dc.coverage.spatialSeoul, Republic of Koreaen
dc.date.accessioned2025-12-23T21:40:26Z
dc.date.available2025-12-23T21:40:26Z
dc.date.issued2025-06-13en
dc.description.abstractJulia 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.en
dc.description.statusPeer-revieweden
dc.format.extent12en
dc.identifier.isbn9798400716102en
dc.identifier.otherORCID:/0000-0002-4487-6923/work/200108962en
dc.identifier.scopus105012713421en
dc.identifier.urihttps://hdl.handle.net/1885/733797061
dc.language.isoenen
dc.publisherAssociation for Computing Machinery (ACM)en
dc.relation.ispartofProceedings of the 2025 ACM SIGPLAN International Symposium on Memory Management (ISMM '25)en
dc.relation.ispartofseries24th ACM SIGPLAN International Symposium on Memory Management, ISMM 2025, Co-located with PLDI 2025en
dc.relation.ispartofseriesInternational Symposium on Memory Management, ISMMen
dc.rightsPublisher Copyright: © 2025 Copyright held by the owner/author(s).en
dc.subjectGarbage Collectionen
dc.subjectJuliaen
dc.subjectMemory Managementen
dc.titleReconsidering Garbage Collection in Julia A Practitioner Reporten
dc.typeConference paperen
dspace.entity.typePublicationen
local.bibliographicCitation.lastpage83en
local.bibliographicCitation.startpage72en
local.contributor.affiliationde Souza Amorim, Luis Eduardo; School of Computing, ANU College of Systems and Society, The Australian National Universityen
local.contributor.affiliationLin, Yi; School of Computing, ANU College of Systems and Society, The Australian National Universityen
local.contributor.affiliationBlackburn, Stephen M.; School of Computing, ANU College of Systems and Society, The Australian National Universityen
local.contributor.affiliationNetto, Diogo; RelationalAI, Incen
local.contributor.affiliationBaraldi, Gabriel; JuliaHuben
local.contributor.affiliationDaly, Nathan; RelationalAI, Incen
local.contributor.affiliationHosking, Antony L.; School of Computing, ANU College of Systems and Society, The Australian National Universityen
local.contributor.affiliationPamnany, Kiran; RelationalAI, Incen
local.contributor.affiliationSmith, Oscar; JuliaHuben
local.identifier.doi10.1145/3735950.3735957en
local.identifier.pure25c1fe13-40f0-4992-a24d-d8fca0219f37en
local.identifier.urlhttps://www.scopus.com/pages/publications/105012713421en
local.type.statusPublisheden

Downloads