io: optimize WriteString, avoid allocation
name old time/op new time/op delta AppExecResult_EncodeBinary-8 477ns ± 0% 467ns ± 3% ~ (p=0.190 n=4+5) name old alloc/op new alloc/op delta AppExecResult_EncodeBinary-8 376B ± 0% 368B ± 0% -2.13% (p=0.008 n=5+5) name old allocs/op new allocs/op delta AppExecResult_EncodeBinary-8 5.00 ± 0% 4.00 ± 0% -20.00% (p=0.008 n=5+5)
This commit is contained in:
parent
748a70569a
commit
e236ac4067
1 changed files with 5 additions and 1 deletions
|
@ -143,7 +143,11 @@ func (w *BinWriter) WriteVarBytes(b []byte) {
|
||||||
|
|
||||||
// WriteString writes a variable length string into the underlying io.Writer.
|
// WriteString writes a variable length string into the underlying io.Writer.
|
||||||
func (w *BinWriter) WriteString(s string) {
|
func (w *BinWriter) WriteString(s string) {
|
||||||
w.WriteVarBytes([]byte(s))
|
w.WriteVarUint(uint64(len(s)))
|
||||||
|
if w.Err != nil {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
_, w.Err = io.WriteString(w.w, s)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Grow tries to increase underlying buffer capacity so that at least n bytes
|
// Grow tries to increase underlying buffer capacity so that at least n bytes
|
||||||
|
|
Loading…
Reference in a new issue