• Filip Gruszczyński's avatar
    encoding/gob: speedup decoding of maps by zeroing values · 11ab865d
    Filip Gruszczyński authored
    Instead of allocating a new reflect.Value object on every loop we zero it.
    
    DecodeComplex128Slice-8  13.1µs ± 7%  13.2µs ± 8%     ~     (p=0.347 n=18+19)
    DecodeFloat64Slice-8     8.13µs ± 5%  8.00µs ± 3%     ~     (p=0.168 n=20+19)
    DecodeInt32Slice-8       8.27µs ± 5%  8.08µs ± 5%   -2.27%  (p=0.001 n=19+18)
    DecodeStringSlice-8      17.9µs ±12%  17.8µs ±11%     ~     (p=0.989 n=20+19)
    DecodeInterfaceSlice-8    163µs ±10%   159µs ± 4%     ~     (p=0.057 n=19+19)
    DecodeMap-8               220µs ± 2%   183µs ± 1%  -17.07%  (p=0.000 n=19+18)
    
    Updates #19525
    
    Change-Id: I27f8edd4761787f6b9928d34cefa08a34a6e25b2
    Reviewed-on: https://go-review.googlesource.com/39203Reviewed-by: default avatarBrad Fitzpatrick <bradfitz@golang.org>
    Reviewed-by: default avatarRob Pike <r@golang.org>
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    11ab865d
decode.go 39 KB