refactor: use b.Loop() in benchmark tests for better performance (#25411)

This commit is contained in:
Jammy Arkens 2025-10-07 22:49:16 +08:00 committed by GitHub
parent 0911d742fd
commit de3afd3af2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 9 additions and 13 deletions

View File

@ -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)
}
}

View File

@ -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)
}

View File

@ -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)
}