Skip to content

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 testing package benchmarks
  • Statistical validation with benchstat
  • Local runs on consistent hardware

All benchmark source code: perf-tracking/benchmarks/