• Rob Pike's avatar
    encoding/gob: add custom decoder buffer for performance · 63acc48f
    Rob Pike authored
    As we did with encoding, provide a trivial byte reader for
    faster decoding. We can also reduce some of the copying
    by doing the allocation all at once using a slightly different
    interface from byte buffers.
    
    benchmark                            old ns/op     new ns/op     delta
    BenchmarkEndToEndPipe                13368         12902         -3.49%
    BenchmarkEndToEndByteBuffer          5969          5642          -5.48%
    BenchmarkEndToEndSliceByteBuffer     479485        470798        -1.81%
    BenchmarkEncodeComplex128Slice       92367         92201         -0.18%
    BenchmarkEncodeFloat64Slice          39990         38960         -2.58%
    BenchmarkEncodeInt32Slice            30510         27938         -8.43%
    BenchmarkEncodeStringSlice           33753         33365         -1.15%
    BenchmarkDecodeComplex128Slice       232278        196704        -15.32%
    BenchmarkDecodeFloat64Slice          150258        128191        -14.69%
    BenchmarkDecodeInt32Slice            133806        115748        -13.50%
    BenchmarkDecodeStringSlice           335117        300534        -10.32%
    
    LGTM=rsc
    R=rsc
    CC=golang-codereviews
    https://golang.org/cl/154360049
    63acc48f
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...