Skip to content

Conversation

cuiweixie
Copy link
Contributor

use testing.B.Loop to save some cost of time in benchmark.

refs to https://tip.golang.org/doc/go1.24
New benchmark function
Benchmarks may now use the faster and less error-prone testing.B.Loop method to perform benchmark iterations like for b.Loop() { ... } in place of the typical loop structures involving b.N like for range b.N. This offers two significant advantages:

The benchmark function will execute exactly once per -count, so expensive setup and cleanup steps execute only once.
Function call parameters and results are kept alive, preventing the compiler from fully optimizing away the loop body.

test report

before:
go test -run=^$ -bench=. ./common/... 81.39s user 2.40s system 100% cpu 1:23.01 total
after:
go test -run=^$ -bench=. ./common/... 68.92s user 2.29s system 101% cpu 1:09.94 total

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants