PGO builds can now devirtualize some interface method calls, adding a concrete call to the most common callee. This enables further optimization, such as inlining the callee.
Go 1.21.0 release notes for the Go 1.21 release.
- Go 1.21 includes a preview of a language change we are considering for a future version of Go: making for loop variables per-iteration instead of per-loop, to avoid accidental sharing bugs.
- Felix Geisendörfer did a bunch of work to improve continuous profiling
- Structured logging package added.
- A few packages that utilize generics (slices, maps, cmp)
- bytes.AvailableBuffer seems neat
- PGO is generally available.