mirror of
https://github.com/golang/go
synced 2024-11-12 07:10:22 -07:00
bytes: Benchmark Buffer's compactions
This benchmark verifies that CL #8173043 reduces time spent sliding the Buffer's contents. Results without and with CL #8173043 applied: benchmark old ns/op new ns/op delta BenchmarkBufferFullSmallReads 755336 175054 -76.82% R=golang-dev, bradfitz CC=golang-dev https://golang.org/cl/8174043
This commit is contained in:
parent
38e7c6b0db
commit
461e7b7d40
@ -509,3 +509,19 @@ func BenchmarkBufferNotEmptyWriteRead(b *testing.B) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Check that we don't compact too often. From Issue 5154.
|
||||||
|
func BenchmarkBufferFullSmallReads(b *testing.B) {
|
||||||
|
buf := make([]byte, 1024)
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
var b Buffer
|
||||||
|
b.Write(buf)
|
||||||
|
for b.Len()+20 < b.Cap() {
|
||||||
|
b.Write(buf[:10])
|
||||||
|
}
|
||||||
|
for i := 0; i < 5<<10; i++ {
|
||||||
|
b.Read(buf[:1])
|
||||||
|
b.Write(buf[:1])
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user