mirror of https://github.com/golang/go.git
strings: add benchmark for Builder.WriteString
This is in preparation for an optimization. ``` name time/op BuildString_WriteString/1Write_NoGrow-8 30.8ns ± 0% BuildString_WriteString/3Write_NoGrow-8 111ns ± 0% BuildString_WriteString/3Write_Grow-8 44.1ns ± 4% name alloc/op BuildString_WriteString/1Write_NoGrow-8 48.0B ± 0% BuildString_WriteString/3Write_NoGrow-8 336B ± 0% BuildString_WriteString/3Write_Grow-8 112B ± 0% name allocs/op BuildString_WriteString/1Write_NoGrow-8 1.00 ± 0% BuildString_WriteString/3Write_NoGrow-8 3.00 ± 0% BuildString_WriteString/3Write_Grow-8 1.00 ± 0% ``` Signed-off-by: Roger Peppe <rogpeppe@gmail.com> Change-Id: I0e2c82edcdc72f381c5160f315401678ff76f3d9 Reviewed-on: https://go-review.googlesource.com/c/go/+/507777 Auto-Submit: Ian Lance Taylor <iant@golang.org> Reviewed-by: Heschi Kreinick <heschi@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com> TryBot-Result: Gopher Robot <gobot@golang.org>
This commit is contained in:
parent
47b403ad2d
commit
1e576efb6b
|
|
@ -355,6 +355,22 @@ func BenchmarkBuildString_Builder(b *testing.B) {
|
|||
})
|
||||
}
|
||||
|
||||
func BenchmarkBuildString_WriteString(b *testing.B) {
|
||||
someString := string(someBytes)
|
||||
benchmarkBuilder(b, func(b *testing.B, numWrite int, grow bool) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
var buf Builder
|
||||
if grow {
|
||||
buf.Grow(len(someString) * numWrite)
|
||||
}
|
||||
for i := 0; i < numWrite; i++ {
|
||||
buf.WriteString(someString)
|
||||
}
|
||||
sinkS = buf.String()
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
func BenchmarkBuildString_ByteBuffer(b *testing.B) {
|
||||
benchmarkBuilder(b, func(b *testing.B, numWrite int, grow bool) {
|
||||
for i := 0; i < b.N; i++ {
|
||||
|
|
|
|||
Loading…
Reference in New Issue