Go Version Performance Tracking¶
Interactive tool to compare benchmark performance across Go releases.
Interactive Comparison Tool¶
Full Screen Mode
Open interactive tool in new window for better visibility.
Methodology¶
Benchmarks run with rigorous controls for consistency:
- Iterations: 20 runs per benchmark
- Benchtime: 3 seconds per iteration
- Comparison: Direct calculation of mean performance deltas between versions
- System Validation: CPU governor, load, and temperature checks before each run
- Hardware: Consistent CPU configuration across all runs
For CLI analysis with statistical significance testing, we use benchstat.
Technical details: perf-tracking documentation
Current Benchmark Suite¶
Core allocation patterns (5 benchmarks):
| Benchmark | Description | Category |
|---|---|---|
| SmallAllocation | 64-byte allocation | Memory |
| LargeAllocation | 1MB allocation | Memory |
| MapAllocation | Map with 100 entries | Data Structures |
| SliceAppend | Slice growth (1000 appends) | Data Structures |
| GCPressure | Allocation under GC pressure | GC Behavior |
Coming Soon: Expanded coverage for stdlib, networking, and crypto (Phase 5).
Key Findings¶
Go 1.23 → 1.24¶
- Overall: 25.11% faster (geomean)
- MapAllocation: 57% faster, 50% fewer allocations (6→3 allocs/op)
- SmallAllocation: 22% faster
- LargeAllocation: 21% faster
Go 1.24 → 1.25¶
- Overall: Stable performance (no significant regressions)
- All benchmarks within statistical noise threshold
About This Data¶
Results collected using:
- Go's standard
testingpackage benchmarks - Statistical validation with
benchstat - Local runs on consistent hardware
All benchmark source code: perf-tracking/benchmarks/