• Michael Schurter's avatar
    encoding/json: reduce allocations by Decoder for \uXXXX · 7eb7f8f5
    Michael Schurter authored
    Manually convert hex escape sequence to rune instead of calling
    strconv.ParseUint.
    
    This inlines the unhex func from docs (and many other packages).
    
    name              old time/op    new time/op    delta
    UnicodeDecoder-4     468ns ± 1%     402ns ± 1%  -14.26%  (p=0.000
    n=10+10)
    
    name              old speed      new speed      delta
    UnicodeDecoder-4  29.9MB/s ± 1%  34.8MB/s ± 1%  +16.59%  (p=0.000
    n=10+10)
    
    name              old alloc/op   new alloc/op   delta
    UnicodeDecoder-4     44.0B ± 0%     36.0B ± 0%  -18.18%  (p=0.000
    n=10+10)
    
    name              old allocs/op  new allocs/op  delta
    UnicodeDecoder-4      4.00 ± 0%      2.00 ± 0%  -50.00%  (p=0.000
    n=10+10)
    
    Fixes #20567
    
    Change-Id: If350978d5bb98ff517485752184d02249f5d1f3a
    Reviewed-on: https://go-review.googlesource.com/44738
    Run-TryBot: Russ Cox <rsc@golang.org>
    Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    7eb7f8f5
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...