December 10, 2025

Go-fighters enter the arena—then get benched

Golang's big miss on memory arenas

Go skips memory speed trick; comments explode with JS bragging and Odin hype

TLDR: Go shelved 'memory arenas,' a big-pool memory trick meant to boost speed. Comments erupted: JS boosters say the web language is plenty fast, performance folks share horror stories and want escape hatches, and others ask why Java/C# were ignored—because these choices decide how fast real apps run.

Go’s plan to add “memory arenas” — think: one big bucket of memory you fill fast and toss all at once — got iced, and the comments went feral. Fans of esbuild (the turbo‑fast bundler written in Go) mourned the lost speed hack, while skeptics shot back: if you need that much manual control, maybe Go isn’t your language. JS defenders came in hot, claiming the article’s “JavaScript slows outside web” take is bogus, flexing that you can even run game loops in JS if you dodge its garbage collector (the auto cleanup thing Go also uses). The enterprise gang chimed in: where’s Java and C# in this “middle ground” convo? Meanwhile, one commenter dropped a war story so spicy the thread needed a fire extinguisher: when deleting millions of tiny objects, it was faster to kill the whole app than free memory one by one — cue chants of “Arenas would’ve saved us!” Safety purists reminded everyone that arenas can cause “use‑after‑free” crashes (touching memory after it’s been nuked), but others noted Go already tolerates risky features. Odin stans rallied (“Viking compiler when?”), and one philosopher asked: who tracks what’s alive when you mix manual and auto memory? The vibe: Go’s arena was canceled, but the drama is very much live.

Key Points

  • Go is positioned as a middle ground between low-level performance and high-level developer velocity.
  • esbuild demonstrates high performance in Go through low-allocation, non-idiomatic techniques.
  • Go’s garbage collector can be a bottleneck for workloads with many short-lived objects.
  • Dan Scales proposed Memory Arenas to allocate and free memory in large pools using bump-pointer allocation.
  • The Go team put Memory Arenas on indefinite hold due to safety concerns, including use-after-free and issues in libraries like math/big.

Hottest takes

"JavaScript is massively performant. It’s so performant that you can write game loops in it" — catigula
"It was often faster to kill the process and start a new one" — bluecalm
"never talks about direct competitors to the \"middle ground\"" — didibus
Made with <3 by @siedrix and @shesho from CDMX. Powered by Forge&Hive.
Golang's big miss on memory arenas - Weaving News | Weaving News