• Austin Clements's avatar
    cmd/link: use BestSpeed for DWARF compression · 12ed0dde
    Austin Clements authored
    DWARF compression accounts for roughly 30% of the linker's time. This
    CL switches from DefaultCompression to BestSpeed, which virtually
    eliminates this time. This roughly halves the overhead of handling
    DWARF in the linker:
    
    name \ time/op         nodwarf     dwarf        dwarf-speed
    BuildCmdGoAll          10.0s ±11%   10.6s ± 5%   10.8s ± 5%
                 nodwarf                  +6.41%       +8.03%
                   dwarf                                 ~
    LinkCmdGo              626ms ± 5%  1096ms ± 2%   860ms ± 2%
                 nodwarf                 +75.17%      +37.36%
                   dwarf                              -21.59%
    
    Previously, enabling DWARF had a 75% overhead in link time for cmd/go.
    This change reduces this overhead to 37% (a 22% reduction).
    
    The effect on binary size is minimal compared to DefaultCompression,
    and still substantially better than no compression:
    
                 cmd/go bytes
    nodwarf      10106953
    dwarf        12159049 nodwarf+20%
    dwarf-speed  12408905 nodwarf+23%
    dwarf-nozlib 17766473 nodwarf+76%
    
    Updates #26318.
    
    Change-Id: I33bb7caa038a2753c29104501663daf4839e7054
    Reviewed-on: https://go-review.googlesource.com/123356
    Run-TryBot: Austin Clements <austin@google.com>
    Reviewed-by: 's avatarHeschi Kreinick <heschi@google.com>
    12ed0dde
Name
Last commit
Last update
..
amd64 Loading commit data...
arm Loading commit data...
arm64 Loading commit data...
ld Loading commit data...
loadelf Loading commit data...
loadmacho Loading commit data...
loadpe Loading commit data...
mips Loading commit data...
mips64 Loading commit data...
objfile Loading commit data...
ppc64 Loading commit data...
s390x Loading commit data...
sym Loading commit data...
wasm Loading commit data...
x86 Loading commit data...