Advancing Go Garbage Collection with Green Tea
summary
Green Tea replaces object-by-object marking with page-granular mark worklists, adds a two-bit per-object metadata layout (seen vs scanned), and scans objects in memory order so caches and NUMA locality improve. Implemented with vector/SIMD bit ops on modern CPUs and sharded page worklists, it yields 10–40% GC CPU reductions in benchmarks and roughly +10% more when vector acceleration applies. It ships as an experiment in Go25 by setting the environment variable Go experiment to green tea GC.
AI-written summary · about
chapters (9)
- 0:00Go GC introduction
- 1:24How Go GC works
- 7:20Garbage collection needs improvement
- 10:51CPU architecture challenges
- 12:38Introducing Green Tea GC
- 16:50Green Tea performance gains
- 19:44Benchmark results & hardware acceleration
- 21:50Availability & future plans
- 22:12Green Tea human story
related talks
50mAn insight into Go Garbage Collection
27mGarbage Collection Semantics
30mBalanced GC: A Copying Garbage Collector for Golang
19mHeap Optimization for Go Systems
48mGolang's Garbage
51mEvolving the Go Memory Manager's RAM and CPU Efficiency
36mGolang's Realtime GC in Theory and Practice
19mGo Tune Your Memory
