Abstract#
Most engineers think garbage collection is slow. They’re not wrong about their experience — stop-the-world collectors really do destroy your tail latencies. But “GC is slow” confuses the symptom with the cause. The real villain is coordination. Every stop-the-world pause, every atomic reference count, every lock-free reclamation scheme is coordination over memory, and coordination is what kills performance.
Pony takes a different path. Actors own their own heaps. Each actor collects independently, using only local knowledge. No stop-the-world. Ever. When actors need to share information about cross-actor references, they gossip — piggybacking on the application messages they’re already sending. They share information but never wait for agreement to act.
This isn’t magic and it isn’t free. But the costs are local, not coordination costs. And that changes everything about what “fast GC” can mean.
Versions of this talk#
- NYC Systems - Slides
Links#
References#
- Fully Concurrent Garbage Collection of Actors on Many-Core Machines
- Life Beyond Distributed Transactions - 2007 version
- Life Beyond Distributed Transactions - 2016 version
- ORCA: GC and Type System Co-Design for Actor Languages
- Ownership and Reference Counting based Garbage Collection in the Actor World
- Pony: Co-designing a Type System and a Runtime
- Silence is Golden: Coordination-Avoiding Systems Design
- Trash Day: Coordinating Garbage Collection in Distributed Systems




