Golang's Realtime GC in Theory and Practice
summary
Go claims low-latency collection by running tricolor mark-and-sweep concurrently with the program, using write barriers to color new or updated objects gray so the mark invariant holds. Pusher ports a real-world cache benchmark from Haskell to Go, measures worst-case pause times with the Go trace visualizer and finds Go under 10 ms (Haskell’s stop-the-world pauses grow with heap size). Trace analysis also exposes bugs (idle mark workers causing ~10–14 ms stalls) fixed by Go 1.8.
AI-written summary · about
chapters (5)
- 0:00Introduction and motivation
- 1:42The problem with Haskell
- 3:25Garbage collection theory
- 12:30Go's concurrent approach
- 13:02Go GC in practice
related talks
30mMemory Management in Go: The good, the bad and the ugly
50mAn insight into Go Garbage Collection
48mGolang's Garbage
27mGarbage Collection Semantics
44mGo Profiling and Observability from Scratch
40mTwo Go programs, three different profiling techniques, all in 40 minutes
34mGolang: Specific Performance Issues
35mGo’s Trace Tooling and Concurrency
