$ for go_version in ~/opt/go1.*; do $go_version/bin/go version; $go_version/bin/go test -bench=. -benchmem; done go version go1.10.8 linux/amd64 goos: linux goarch: amd64 pkg: github.com/therounds/functional-options BenchmarkDefault-8 50000000 23.7 ns/op 16 B/op 1 allocs/op BenchmarkWithNoop-8 50000000 25.5 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByAnonymousFunction-8 30000000 54.9 ns/op 48 B/op 2 allocs/op BenchmarkWithValueByMethod-8 30000000 54.5 ns/op 48 B/op 2 allocs/op PASS ok github.com/therounds/functional-options 5.916s go version go1.11.13 linux/amd64 goos: linux goarch: amd64 pkg: github.com/therounds/functional-options BenchmarkDefault-8 50000000 25.5 ns/op 16 B/op 1 allocs/op BenchmarkWithNoop-8 50000000 26.6 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByAnonymousFunction-8 30000000 57.6 ns/op 48 B/op 2 allocs/op BenchmarkWithValueByMethod-8 20000000 58.1 ns/op 48 B/op 2 allocs/op PASS ok github.com/therounds/functional-options 5.684s go version go1.12.17 linux/amd64 goos: linux goarch: amd64 pkg: github.com/therounds/functional-options BenchmarkDefault-8 50000000 24.6 ns/op 16 B/op 1 allocs/op BenchmarkWithNoop-8 50000000 25.9 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByAnonymousFunction-8 30000000 56.5 ns/op 48 B/op 2 allocs/op BenchmarkWithValueByMethod-8 30000000 56.5 ns/op 48 B/op 2 allocs/op PASS ok github.com/therounds/functional-options 6.090s go version go1.13.15 linux/amd64 goos: linux goarch: amd64 pkg: functional-options BenchmarkDefault-8 48777259 24.8 ns/op 16 B/op 1 allocs/op BenchmarkWithNoop-8 47385282 25.4 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByAnonymousFunction-8 21591151 56.2 ns/op 48 B/op 2 allocs/op BenchmarkWithValueByMethod-8 21361632 56.1 ns/op 48 B/op 2 allocs/op PASS ok functional-options 4.998s go version go1.14.15 linux/amd64 goos: linux goarch: amd64 pkg: functional-options BenchmarkDefault-8 45698482 25.0 ns/op 16 B/op 1 allocs/op BenchmarkWithNoop-8 46036210 26.1 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByAnonymousFunction-8 18257054 60.1 ns/op 48 B/op 2 allocs/op BenchmarkWithValueByMethod-8 19067396 60.2 ns/op 48 B/op 2 allocs/op PASS ok functional-options 4.782s go version go1.15.15 linux/amd64 goos: linux goarch: amd64 pkg: functional-options BenchmarkDefault-8 48260270 25.1 ns/op 16 B/op 1 allocs/op BenchmarkWithNoop-8 45568389 26.9 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByAnonymousFunction-8 20555734 58.8 ns/op 48 B/op 2 allocs/op BenchmarkWithValueByMethod-8 20635710 58.4 ns/op 48 B/op 2 allocs/op PASS ok functional-options 5.037s go version go1.16.15 linux/amd64 goos: linux goarch: amd64 pkg: functional-options cpu: AMD Ryzen 7 3700X 8-Core Processor BenchmarkDefault-8 45162694 25.68 ns/op 16 B/op 1 allocs/op BenchmarkWithNoop-8 43533798 27.52 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByAnonymousFunction-8 20830909 57.71 ns/op 40 B/op 2 allocs/op BenchmarkWithValueByMethod-8 40737096 29.86 ns/op 16 B/op 1 allocs/op PASS ok functional-options 4.930s go version go1.17.13 linux/amd64 goos: linux goarch: amd64 pkg: functional-options cpu: AMD Ryzen 7 3700X 8-Core Processor BenchmarkDefault-8 43947151 26.57 ns/op 16 B/op 1 allocs/op BenchmarkWithNoop-8 39920169 30.03 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByAnonymousFunction-8 41209442 29.66 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByMethod-8 40097962 30.17 ns/op 16 B/op 1 allocs/op PASS ok functional-options 4.928s go version go1.18.10 linux/amd64 goos: linux goarch: amd64 pkg: functional-options cpu: AMD Ryzen 7 3700X 8-Core Processor BenchmarkDefault-8 48014432 24.64 ns/op 16 B/op 1 allocs/op BenchmarkWithNoop-8 43604310 27.11 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByAnonymousFunction-8 42316015 28.09 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByMethod-8 40415443 29.16 ns/op 16 B/op 1 allocs/op PASS ok functional-options 4.862s go version go1.19.7 linux/amd64 goos: linux goarch: amd64 pkg: functional-options cpu: AMD Ryzen 7 3700X 8-Core Processor BenchmarkDefault-8 42832507 27.77 ns/op 16 B/op 1 allocs/op BenchmarkWithNoop-8 40406300 29.14 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByAnonymousFunction-8 40202791 29.78 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByMethod-8 38364927 32.49 ns/op 16 B/op 1 allocs/op PASS ok functional-options 4.942s go version go1.20.2 linux/amd64 goos: linux goarch: amd64 pkg: functional-options cpu: AMD Ryzen 7 3700X 8-Core Processor BenchmarkDefault-8 38808385 30.94 ns/op 16 B/op 1 allocs/op BenchmarkWithNoop-8 35837532 32.55 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByAnonymousFunction-8 34458160 33.90 ns/op 16 B/op 1 allocs/op BenchmarkWithValueByMethod-8 33709026 34.38 ns/op 16 B/op 1 allocs/op PASS ok functional-options 4.844s