mirror of
https://github.com/golang/go
synced 2024-11-17 14:44:44 -07:00
encoding/binary: remove TODO in Write and add benchmarks
Benchmarks: goos: linux goarch: amd64 BenchmarkReadSlice1000Uint8s-8 4097088 296 ns/op 3381.06 MB/s BenchmarkWriteSlice1000Uint8s-8 4372588 271 ns/op 3694.96 MB/s Change-Id: I5b6ef0da5052e3381ee9c714bbff541c11ed0259 Reviewed-on: https://go-review.googlesource.com/c/go/+/246837 Run-TryBot: Alberto Donizetti <alb.donizetti@gmail.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Alberto Donizetti <alb.donizetti@gmail.com> Reviewed-by: Ian Lance Taylor <iant@golang.org> Trust: Alberto Donizetti <alb.donizetti@gmail.com>
This commit is contained in:
parent
0a9dd47dd8
commit
83bc1ed316
@ -306,7 +306,7 @@ func Write(w io.Writer, order ByteOrder, data interface{}) error {
|
|||||||
case uint8:
|
case uint8:
|
||||||
bs[0] = v
|
bs[0] = v
|
||||||
case []uint8:
|
case []uint8:
|
||||||
bs = v // TODO(josharian): avoid allocating bs in this case?
|
bs = v
|
||||||
case *int16:
|
case *int16:
|
||||||
order.PutUint16(bs, uint16(*v))
|
order.PutUint16(bs, uint16(*v))
|
||||||
case int16:
|
case int16:
|
||||||
|
@ -706,3 +706,27 @@ func BenchmarkWriteSlice1000Float32s(b *testing.B) {
|
|||||||
}
|
}
|
||||||
b.StopTimer()
|
b.StopTimer()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func BenchmarkReadSlice1000Uint8s(b *testing.B) {
|
||||||
|
bsr := &byteSliceReader{}
|
||||||
|
slice := make([]uint8, 1000)
|
||||||
|
buf := make([]byte, len(slice))
|
||||||
|
b.SetBytes(int64(len(buf)))
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
bsr.remain = buf
|
||||||
|
Read(bsr, BigEndian, slice)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func BenchmarkWriteSlice1000Uint8s(b *testing.B) {
|
||||||
|
slice := make([]uint8, 1000)
|
||||||
|
buf := new(bytes.Buffer)
|
||||||
|
var w io.Writer = buf
|
||||||
|
b.SetBytes(1000)
|
||||||
|
b.ResetTimer()
|
||||||
|
for i := 0; i < b.N; i++ {
|
||||||
|
buf.Reset()
|
||||||
|
Write(w, BigEndian, slice)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user