Last Updated: May 22, 2026
A busy online store ends up allocating a lot of small, short-lived objects: a bytes.Buffer for every JSON response, a scratch struct for every receipt, a temporary slice for every cart calculation. Each allocation is cheap on its own, but at thousands of requests per second the garbage collector starts spending real CPU time tracing and freeing them. sync.Pool is Go's standard tool for recycling those objects across requests so the allocator can rest. It's a cache, not a guarantee, and that distinction shapes everything about how you use it.