• 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
data.go 62.5 KB