From: Dmitrii Martynov Date: Thu, 30 Jan 2025 18:48:17 +0000 (+0300) Subject: runtime: exclude allocation(s) from memmove/memclr benchmarking X-Git-Tag: go1.25rc1~942 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4dfae6aad54b9e399e5144c9b58a9c87a8afbe56;p=gostls13.git runtime: exclude allocation(s) from memmove/memclr benchmarking The overhead for allocation is not significant but it should be excluded from the memmove/memclr benchmarking anyway. Change-Id: I7ea86d1b85b13352ccbff16f7510caa250654dab Reviewed-on: https://go-review.googlesource.com/c/go/+/645576 LUCI-TryBot-Result: Go LUCI Reviewed-by: Keith Randall Reviewed-by: Keith Randall Reviewed-by: Cherry Mui --- diff --git a/src/runtime/memmove_test.go b/src/runtime/memmove_test.go index 6550c759d6..ba9bc1f6b6 100644 --- a/src/runtime/memmove_test.go +++ b/src/runtime/memmove_test.go @@ -292,6 +292,7 @@ func BenchmarkMemmove(b *testing.B) { benchmarkSizes(b, bufSizes, func(b *testing.B, n int) { x := make([]byte, n) y := make([]byte, n) + b.ResetTimer() for i := 0; i < b.N; i++ { copy(x, y) } @@ -301,6 +302,7 @@ func BenchmarkMemmove(b *testing.B) { func BenchmarkMemmoveOverlap(b *testing.B) { benchmarkSizes(b, bufSizesOverlap, func(b *testing.B, n int) { x := make([]byte, n+16) + b.ResetTimer() for i := 0; i < b.N; i++ { copy(x[16:n+16], x[:n]) } @@ -311,6 +313,7 @@ func BenchmarkMemmoveUnalignedDst(b *testing.B) { benchmarkSizes(b, bufSizes, func(b *testing.B, n int) { x := make([]byte, n+1) y := make([]byte, n) + b.ResetTimer() for i := 0; i < b.N; i++ { copy(x[1:], y) } @@ -320,6 +323,7 @@ func BenchmarkMemmoveUnalignedDst(b *testing.B) { func BenchmarkMemmoveUnalignedDstOverlap(b *testing.B) { benchmarkSizes(b, bufSizesOverlap, func(b *testing.B, n int) { x := make([]byte, n+16) + b.ResetTimer() for i := 0; i < b.N; i++ { copy(x[16:n+16], x[1:n+1]) } @@ -330,6 +334,7 @@ func BenchmarkMemmoveUnalignedSrc(b *testing.B) { benchmarkSizes(b, bufSizes, func(b *testing.B, n int) { x := make([]byte, n) y := make([]byte, n+1) + b.ResetTimer() for i := 0; i < b.N; i++ { copy(x, y[1:]) } @@ -362,6 +367,7 @@ func BenchmarkMemmoveUnalignedSrcDst(b *testing.B) { func BenchmarkMemmoveUnalignedSrcOverlap(b *testing.B) { benchmarkSizes(b, bufSizesOverlap, func(b *testing.B, n int) { x := make([]byte, n+1) + b.ResetTimer() for i := 0; i < b.N; i++ { copy(x[1:n+1], x[:n]) } @@ -450,6 +456,7 @@ func BenchmarkMemclrUnaligned(b *testing.B) { func BenchmarkGoMemclr(b *testing.B) { benchmarkSizes(b, []int{5, 16, 64, 256}, func(b *testing.B, n int) { x := make([]byte, n) + b.ResetTimer() for i := 0; i < b.N; i++ { clear(x) }