• Filip Gruszczyński's avatar
    encoding/gob: use MakeMapWithSize when decoding map · f504bc00
    Filip Gruszczyński authored
    This allows to pre-allocate the final size of the hashmap and avoid
    re-allocating as we insert entries. Furthermore for the current
    implementation of the hashmap it allows avoiding several rounds of
    evacuating hashmap entries after each re-allocation.
    
    DecodeComplex128Slice-8  51.9µs ± 1%  51.9µs ± 2%     ~     (p=0.797 n=30+29)
    DecodeFloat64Slice-8     31.5µs ± 2%  31.6µs ± 2%     ~     (p=0.050 n=28+28)
    DecodeInt32Slice-8       32.0µs ± 2%  31.9µs ± 3%     ~     (p=0.666 n=29+28)
    DecodeStringSlice-8      57.7µs ± 2%  57.8µs ± 3%     ~     (p=0.780 n=27+30)
    DecodeInterfaceSlice-8    498µs ± 2%   495µs ± 2%     ~     (p=0.070 n=28+29)
    DecodeMap-8               300µs ± 2%   230µs ± 5%  -23.31%  (p=0.000 n=27+27)
    
    Updates #19525
    
    Change-Id: Ia7233da49f05bae7a86c064d9ecebca966f5f2f7
    Reviewed-on: https://go-review.googlesource.com/40113
    Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    f504bc00
Name
Last commit
Last update
..
ascii85 Loading commit data...
asn1 Loading commit data...
base32 Loading commit data...
base64 Loading commit data...
binary Loading commit data...
csv Loading commit data...
gob Loading commit data...
hex Loading commit data...
json Loading commit data...
pem Loading commit data...
xml Loading commit data...
encoding.go Loading commit data...