~/Benchmarking In Go

Aug 22, 2025


1. Structure of a Go Benchmark

1
2
3
4
5
func BenchmarkMyFunc(b *testing.B) {
    for i := 0; i < b.N; i++ {
        MyFunc()
    }
}

2. Running Benchmarks

3. Prevent Compiler Optimizations

1
2
3
4
5
6
7
8
var result int
func BenchmarkDoSomething(b *testing.B) {
    var r int
    for i := 0; i < b.N; i++ {
        r = DoSomething()
    }
    result = r
}

5. Expensive Setup

6. Measuring Allocations

7. Example Use Case

8. Interpreting Results

Tips

Tags: [go]