From: Tobias Klauser Date: Fri, 15 Mar 2019 10:29:03 +0000 (+0100) Subject: bytes: add hard benchmarks for Index and Count X-Git-Tag: go1.13beta1~1020 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=9d9d4eeb87ed5dae09e26d744ea7d6caf9b182dc;p=gostls13.git bytes: add hard benchmarks for Index and Count Add Benchmark(Index|Count)Hard[1-3] in preparation for implementing Index and Count in assembly on arm. Updates #29001 Change-Id: I2a9701892190e8d91de069c2f5a7f5bd3544c6c2 Reviewed-on: https://go-review.googlesource.com/c/go/+/167798 Run-TryBot: Tobias Klauser TryBot-Result: Gobot Gobot Reviewed-by: Brad Fitzpatrick --- diff --git a/src/bytes/bytes_test.go b/src/bytes/bytes_test.go index 98ba95009d..d508fc9895 100644 --- a/src/bytes/bytes_test.go +++ b/src/bytes/bytes_test.go @@ -1654,16 +1654,39 @@ func makeBenchInputHard() []byte { var benchInputHard = makeBenchInputHard() +func benchmarkIndexHard(b *testing.B, sep []byte) { + for i := 0; i < b.N; i++ { + Index(benchInputHard, sep) + } +} + func benchmarkLastIndexHard(b *testing.B, sep []byte) { for i := 0; i < b.N; i++ { LastIndex(benchInputHard, sep) } } +func benchmarkCountHard(b *testing.B, sep []byte) { + for i := 0; i < b.N; i++ { + Count(benchInputHard, sep) + } +} + +func BenchmarkIndexHard1(b *testing.B) { benchmarkIndexHard(b, []byte("<>")) } +func BenchmarkIndexHard2(b *testing.B) { benchmarkIndexHard(b, []byte("")) } +func BenchmarkIndexHard3(b *testing.B) { benchmarkIndexHard(b, []byte("hello world")) } +func BenchmarkIndexHard4(b *testing.B) { + benchmarkIndexHard(b, []byte("
helloworld
")) +} + func BenchmarkLastIndexHard1(b *testing.B) { benchmarkLastIndexHard(b, []byte("<>")) } func BenchmarkLastIndexHard2(b *testing.B) { benchmarkLastIndexHard(b, []byte("")) } func BenchmarkLastIndexHard3(b *testing.B) { benchmarkLastIndexHard(b, []byte("hello world")) } +func BenchmarkCountHard1(b *testing.B) { benchmarkCountHard(b, []byte("<>")) } +func BenchmarkCountHard2(b *testing.B) { benchmarkCountHard(b, []byte("")) } +func BenchmarkCountHard3(b *testing.B) { benchmarkCountHard(b, []byte("hello world")) } + func BenchmarkSplitEmptySeparator(b *testing.B) { for i := 0; i < b.N; i++ { Split(benchInputHard, nil)