From de3afd3af2484c669262d7f3ae917ef7ae759e6a Mon Sep 17 00:00:00 2001 From: Jammy Arkens <158516297+jaramyweb3@users.noreply.github.com> Date: Tue, 7 Oct 2025 22:49:16 +0800 Subject: [PATCH] refactor: use b.Loop() in benchmark tests for better performance (#25411) --- types/coin_benchmark_test.go | 6 +++--- x/auth/ante/sigverify_benchmark_test.go | 4 ++-- x/tx/signing/textual/bench_test.go | 12 ++++-------- 3 files changed, 9 insertions(+), 13 deletions(-) diff --git a/types/coin_benchmark_test.go b/types/coin_benchmark_test.go index 9c796bfdd1..cb78d0cb29 100644 --- a/types/coin_benchmark_test.go +++ b/types/coin_benchmark_test.go @@ -29,7 +29,7 @@ func BenchmarkCoinsAdditionIntersect(b *testing.B) { b.ResetTimer() - for i := 0; i < b.N; i++ { + for b.Loop() { coinsA.Add(coinsB...) } } @@ -61,7 +61,7 @@ func BenchmarkCoinsAdditionNoIntersect(b *testing.B) { b.ResetTimer() - for i := 0; i < b.N; i++ { + for b.Loop() { coinsA.Add(coinsB...) } } @@ -101,7 +101,7 @@ func BenchmarkSumOfCoinAdds(b *testing.B) { b.ResetTimer() - for i := 0; i < b.N; i++ { + for b.Loop() { sumFn(addCoins) } } diff --git a/x/auth/ante/sigverify_benchmark_test.go b/x/auth/ante/sigverify_benchmark_test.go index 6c3cd513d5..6a15a17737 100644 --- a/x/auth/ante/sigverify_benchmark_test.go +++ b/x/auth/ante/sigverify_benchmark_test.go @@ -28,7 +28,7 @@ func BenchmarkSig(b *testing.B) { b.Run("secp256k1", func(b *testing.B) { b.ReportAllocs() - for i := 0; i < b.N; i++ { + for b.Loop() { ok := pkK.VerifySignature(msg, sigK) require.True(ok) } @@ -36,7 +36,7 @@ func BenchmarkSig(b *testing.B) { b.Run("secp256r1", func(b *testing.B) { b.ReportAllocs() - for i := 0; i < b.N; i++ { + for b.Loop() { ok := pkR.VerifySignature(msg, sigR) require.True(ok) } diff --git a/x/tx/signing/textual/bench_test.go b/x/tx/signing/textual/bench_test.go index d113b39bd3..87bdec22e2 100644 --- a/x/tx/signing/textual/bench_test.go +++ b/x/tx/signing/textual/bench_test.go @@ -29,10 +29,9 @@ var intValues = []protoreflect.Value{ func BenchmarkIntValueRendererFormat(b *testing.B) { ctx := context.Background() ivr := textual.NewIntValueRenderer(fieldDescriptorFromName("UINT64")) - b.ResetTimer() b.ReportAllocs() - for i := 0; i < b.N; i++ { + for b.Loop() { for _, value := range intValues { if _, err := ivr.Format(ctx, value); err != nil { b.Fatal(err) @@ -56,10 +55,9 @@ var decimalValues = []protoreflect.Value{ func BenchmarkDecimalValueRendererFormat(b *testing.B) { ctx := context.Background() dvr := textual.NewDecValueRenderer() - b.ResetTimer() b.ReportAllocs() - for i := 0; i < b.N; i++ { + for b.Loop() { for _, value := range decimalValues { if _, err := dvr.Format(ctx, value); err != nil { b.Fatal(err) @@ -83,10 +81,9 @@ var byteValues = []protoreflect.Value{ func BenchmarkBytesValueRendererFormat(b *testing.B) { ctx := context.Background() bvr := textual.NewBytesValueRenderer() - b.ResetTimer() b.ReportAllocs() - for i := 0; i < b.N; i++ { + for b.Loop() { for _, value := range byteValues { if _, err := bvr.Format(ctx, value); err != nil { b.Fatal(err) @@ -129,9 +126,8 @@ func BenchmarkMessageValueRenderer_parseRepeated(b *testing.B) { } b.ReportAllocs() - b.ResetTimer() - for i := 0; i < b.N; i++ { + for b.Loop() { for _, rs := range rsL { sink, _ = rs.rend.Parse(ctx, rs.screens) }