From 4dfae6aad54b9e399e5144c9b58a9c87a8afbe56 Mon Sep 17 00:00:00 2001 From: Dmitrii Martynov Date: Thu, 30 Jan 2025 21:48:17 +0300 Subject: [PATCH] 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 --- src/runtime/memmove_test.go | 7 +++++++ 1 file changed, 7 insertions(+) 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) } -- 2.50.0