Skip to content

Golang's realtime garbage collector

Photo of Jim Fisher
Hosted By
Jim F. and Will S.
Golang's realtime garbage collector

Details

Each day, Pusher sends billions of messages in real-time: source to destination in less than 100ms. How do we achieve this? A key factor is Go’s low-latency garbage collector.

Garbage collectors are a bane of real-time systems because they pause the program. So when designing our new message bus, we chose the language carefully. Go emphasizes low latency, but we were wary: does Go really achieve this? If so, how?

In this talk, we’ll look at Go’s garbage collector. We’ll see how it works (the tricolor algorithm), why it works (achieving such short GC pauses), and most importantly, whether it works (benchmarking these GC pauses, and comparing them with other languages).

This talk is given by Will Sewell and Jim Fisher, both working at Pusher. Can't wait? You can read their investigation into Go's GC (https://blog.pusher.com/golangs-real-time-gc-in-theory-and-practice/), and their older investigation into GHC's GC (https://blog.pusher.com/latency-working-set-ghc-gc-pick-two/).

Photo of The Realtime Guild group
The Realtime Guild
See more events
Pusher Office
28 Scrutton St, London EC2A 4RP, UK · London