I wonder how the GC pause times and throughput compare. My understanding is that Go sacrifices some compute performance for better GC pause times.
What does that mean exactly / in this case?
My assumption is that "better" means more predictable. Or does it mean straight up fewer/shorter?
Since most short-lived allocations in Go are stack-allocated, the cost of adding a read-barrier and branching on every heap access is more expensive than the potential gain from bump-pointer allocation.
He outlines the SLOs for the garbage collector, with the motivation that this SLO impacts the SLOs/time budget of every application built with Go. They key metrics are "share of CPU used for GC", heap sizes, latency and frequency of pauses, and scaling favorably with go-routine allocations.