mirror of
https://github.com/golang/go
synced 2024-11-12 07:00:21 -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