common: op benchmark time by using testing.B.Loop #32642
+25
−30
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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