Go: Closing the Performance Gap in JSON and RISC-V
A fix to encoding/json/v2 restores a fast path for decoding into "any" under default settings, while a RISC-V compiler change compresses function returns for smaller binaries. Both changes target performance that was left on the table by conservative defaults.
Duration: PT2M6S
Episode overview
This episode is a short developer briefing from Go.
It explains recent repository work in plain language.
- Show: Go
- Published: 2026-08-09T13:05:06Z
- Audio duration: PT2M6S
Transcript excerpt
This excerpt keeps the crawler page concise. Listen to the episode or use the RSS feed for the full update.
Good morning. It's August 9th, 2026, and this is Go.
Today's throughline is performance that was hiding behind a default setting nobody double-checked.
Start with pull request 80798, from David Teather. When code unmarshals JSON into an "any" type, there are two paths: a fast one that builds maps and slices directly, and a slower reflect-based one that allocates for every single object member. The fast path was supposed to kick in automatically, but it was gated on…
Second theme: low-level compiler work paying off in binary size. Joel Sing's commit compresses function returns on RISC-V 64, using a compact jump-register instruction instead of the standard one, since bare returns never carry relocations. The result is about 2,700 fewer full-size instructions in the Go binary on…
One more item worth noting: Robert Griesemer landed a small wording fix in the language specification, closing out issue 80784. Not a technical change, but a reminder that spec clarity gets the same review rigor as code.
What to remember: if you're on encoding/json/v2, expect faster any-typed decoding without doing anything differently. And if you're tracking RISC-V codegen, the return-compression work is…
Nearby episodes from Go
- Trimming the Fat—Compiler and Crypto Cleanup
- Squeezing Cycles from the Compiler and Runtime
- Trimming the Fat in Hot Paths
- Weekly Recap - Correctness Fixes and Concurrency Cleanup
- Quietly Closing Security Gaps
- Timer Race Fix and Runtime Cleanup
- Trimming Waste in the Standard Library
- Fixing What Recent Changes Broke