• Michael Fraenkel's avatar
    strings: use Builder in Map · 45c7d808
    Michael Fraenkel authored
    Use a builder to avoid the copy when converting the []byte to a string.
    
    name                  old time/op    new time/op    delta
    ByteByteMap-8            796ns ± 5%     700ns ± 1%  -12.00%  (p=0.000 n=9+8)
    Map/identity/ASCII-8     123ns ± 8%     126ns ± 7%     ~     (p=0.194 n=10+10)
    Map/identity/Greek-8     198ns ± 2%     204ns ± 5%   +2.99%  (p=0.008 n=9+10)
    Map/change/ASCII-8       266ns ±10%     202ns ± 3%  -24.19%  (p=0.000 n=10+10)
    Map/change/Greek-8       450ns ± 4%     406ns ± 1%   -9.73%  (p=0.000 n=9+10)
    MapNoChanges-8          85.4ns ± 3%    90.2ns ±11%   +5.67%  (p=0.000 n=9+10)
    
    name                  old alloc/op   new alloc/op   delta
    ByteByteMap-8             416B ± 0%      208B ± 0%  -50.00%  (p=0.000 n=10+10)
    Map/identity/ASCII-8     0.00B          0.00B          ~     (all equal)
    Map/identity/Greek-8     0.00B          0.00B          ~     (all equal)
    Map/change/ASCII-8        128B ± 0%       64B ± 0%  -50.00%  (p=0.000 n=10+10)
    Map/change/Greek-8        160B ± 0%       80B ± 0%  -50.00%  (p=0.000 n=10+10)
    MapNoChanges-8           0.00B          0.00B          ~     (all equal)
    
    name                  old allocs/op  new allocs/op  delta
    ByteByteMap-8             2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.000 n=10+10)
    Map/identity/ASCII-8      0.00           0.00          ~     (all equal)
    Map/identity/Greek-8      0.00           0.00          ~     (all equal)
    Map/change/ASCII-8        2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.000 n=10+10)
    Map/change/Greek-8        2.00 ± 0%      1.00 ± 0%  -50.00%  (p=0.000 n=10+10)
    MapNoChanges-8            0.00           0.00          ~     (all equal)
    
    Fixes #26304
    
    Change-Id: Ideec9dfc29b0b8107f34fc634247081d0031777d
    Reviewed-on: https://go-review.googlesource.com/122875Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    45c7d808
Name
Last commit
Last update
.github Loading commit data...
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...