go/src/encoding/gob
korzhao dcf3545774 encoding/gob: optimize decoding of slice
In CL 345572, we used the reflect.Value.SetLen method to avoid
extra memory allocation for reflect.Value.Slice.
This also applies to function decodeSlice

name                   old time/op    new time/op    delta
DecodeStringsSlice-12    96.5µs ±12%    63.0µs ± 8%  -34.68%  (p=0.000 n=9+10)

name                   old alloc/op   new alloc/op   delta
DecodeStringsSlice-12    89.3kB ± 0%    65.3kB ± 0%  -26.89%  (p=0.000 n=10+10)

name                   old allocs/op  new allocs/op  delta
DecodeStringsSlice-12     3.18k ± 0%     2.18k ± 0%  -31.47%  (p=0.000 n=10+10)

Change-Id: Ifdb43716cc90a265962dec022704a5571f447fd8
Reviewed-on: https://go-review.googlesource.com/c/go/+/347533
Reviewed-by: Joe Tsai <joetsai@digital-static.net>
Reviewed-by: Rob Pike <r@golang.org>
Trust: Joe Tsai <joetsai@digital-static.net>
Run-TryBot: Joe Tsai <joetsai@digital-static.net>
TryBot-Result: Go Bot <gobot@golang.org>
2021-09-07 21:39:06 +00:00
..
codec_test.go
debug.go all: go fmt std cmd (but revert vendor) 2021-02-20 03:54:50 +00:00
dec_helpers.go
decgen.go all: go fmt std cmd (but revert vendor) 2021-02-20 03:54:50 +00:00
decode.go encoding/gob: optimize decoding of slice 2021-09-07 21:39:06 +00:00
decoder.go all: remove redundant spaces before . and , 2021-04-20 00:49:17 +00:00
doc.go
dump.go all: go fmt std cmd (but revert vendor) 2021-02-20 03:54:50 +00:00
enc_helpers.go
encgen.go all: go fmt std cmd (but revert vendor) 2021-02-20 03:54:50 +00:00
encode.go encoding/gob: marshal maps using reflect.Value.MapRange 2021-09-07 19:14:23 +00:00
encoder.go
encoder_test.go encoding/gob: marshal maps using reflect.Value.MapRange 2021-09-07 19:14:23 +00:00
error.go
example_encdec_test.go
example_interface_test.go
example_test.go
gobencdec_test.go
timing_test.go encoding/gob: optimize decoding of slice 2021-09-07 21:39:06 +00:00
type.go
type_test.go