• Josh Bleecher Snyder's avatar
    runtime: add maxSliceCap · a4dd6ea1
    Josh Bleecher Snyder authored
    This avoids expensive division calculations
    for many common slice element sizes.
    
    name                      old time/op  new time/op  delta
    MakeSlice-8               51.9ns ± 3%  35.1ns ± 2%  -32.41%  (p=0.000 n=10+10)
    GrowSliceBytes-8          44.1ns ± 2%  44.1ns ± 1%     ~     (p=0.984 n=10+10)
    GrowSliceInts-8           60.9ns ± 3%  60.9ns ± 3%     ~     (p=0.698 n=10+10)
    GrowSlicePtr-8             131ns ± 1%   120ns ± 2%   -8.41%   (p=0.000 n=8+10)
    GrowSliceStruct24Bytes-8   111ns ± 2%   103ns ± 3%   -7.23%    (p=0.000 n=8+8)
    
    Change-Id: I2630eb3d73c814db030cad16e620ea7fecbbd312
    Reviewed-on: https://go-review.googlesource.com/22223Reviewed-by: 's avatarKeith Randall <khr@golang.org>
    a4dd6ea1
slice.go 5.6 KB