Consider the following benchmark:
func BenchmarkFoo(b *testing.B) {
a := make([]byte, 1000)
b.SetBytes(int64(len(a)))
for i := 0; i < b.N; i++ {
var n int
for j := 0; j < 1000; j++ {
a[n] = byte(j)
n++
}
a = a[:n]
}
}
Comparing tip (go version devel +d972dc2de9 Tue Mar 21 06:36:56 2017 +0000 linux/amd64) with go1.8 I get, on my machine:
name old time/op new time/op delta
Foo-4 684ns ± 1% 1022ns ± 0% +49.34% (p=0.000 n=18+15)
name old speed new speed delta
Foo-4 1.46GB/s ± 1% 0.98GB/s ± 0% -32.99% (p=0.000 n=18+18)
A pretty bad regression.
Consider the following benchmark:
Comparing tip (
go version devel +d972dc2de9 Tue Mar 21 06:36:56 2017 +0000 linux/amd64) with go1.8 I get, on my machine:A pretty bad regression.