• Brad Fitzpatrick's avatar
    Revert "trace: don't allocate all events upfront" · 9b4f494e
    Brad Fitzpatrick authored
    This reverts commit If7c68bb1809fb92fa5d06cb6640be5e09e1f131f.
    
    Reason for revert: breaks the build for Go 1.6 or below due to use of Go 1.7+ only features.
    
    Original change's description:
    > trace: don't allocate all events upfront
    > 
    > SetMaxEvent allocates storage for all events, which is very expensive
    > if we want to set a high value; even with small values, the
    > unnecessary allocation of the initial slice is measurable.
    > 
    > We improve the performance by having a few events preallocated as part
    > of the trace, and appending as necessary. We also co-locate the flags
    > in event which makes it smaller (by a word).
    > 
    > We also add a set of benchmarks; before and after amortized cost
    > per-event is shown:
    > 
    > name                 old time/op  new time/op  delta
    > Trace/0-2-32         1.19µs ± 1%  0.96µs ± 0%  -18.94%  (p=0.008 n=5+5)
    > Trace/0-10-32         579ns ± 0%   635ns ± 1%   +9.82%  (p=0.008 n=5+5)
    > Trace/0-100-32        463ns ± 1%   466ns ± 1%     ~     (p=0.190 n=5+5)
    > Trace/0-1000-32       451ns ± 1%   451ns ± 0%     ~     (p=0.984 n=5+5)
    > Trace/0-10000-32      451ns ± 2%   449ns ± 1%     ~     (p=0.492 n=5+5)
    > Trace/10-2-32        1.41µs ± 1%  0.96µs ± 1%  -31.74%  (p=0.008 n=5+5)
    > Trace/10-10-32        623ns ± 1%   634ns ± 1%   +1.73%  (p=0.008 n=5+5)
    > Trace/10-100-32       469ns ± 1%   466ns ± 1%     ~     (p=0.357 n=5+5)
    > Trace/10-1000-32      452ns ± 1%   453ns ± 2%     ~     (p=0.913 n=5+5)
    > Trace/10-10000-32     451ns ± 1%   449ns ± 1%     ~     (p=0.175 n=5+5)
    > Trace/100-2-32       2.78µs ± 2%  0.97µs ± 1%  -65.28%  (p=0.008 n=5+5)
    > Trace/100-10-32       912ns ± 1%   637ns ± 1%  -30.23%  (p=0.008 n=5+5)
    > Trace/100-100-32      479ns ± 1%   541ns ± 0%  +12.77%  (p=0.008 n=5+5)
    > Trace/100-1000-32     510ns ± 0%   541ns ± 1%   +6.08%  (p=0.008 n=5+5)
    > Trace/100-10000-32    514ns ± 1%   540ns ± 0%   +5.14%  (p=0.008 n=5+5)
    > Trace/1000-2-32      17.2µs ± 1%   1.0µs ± 1%  -94.39%  (p=0.008 n=5+5)
    > Trace/1000-10-32     3.90µs ± 1%  0.64µs ± 0%  -83.68%  (p=0.008 n=5+5)
    > Trace/1000-100-32     814ns ± 1%   542ns ± 0%  -33.46%  (p=0.008 n=5+5)
    > Trace/1000-1000-32    503ns ± 1%   581ns ± 0%  +15.56%  (p=0.008 n=5+5)
    > Trace/1000-10000-32  1.28µs ± 2%  1.03µs ± 1%  -19.68%  (p=0.008 n=5+5)
    > 
    > Change-Id: If7c68bb1809fb92fa5d06cb6640be5e09e1f131f
    > Reviewed-on: https://go-review.googlesource.com/30374
    > Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
    > TryBot-Result: Gobot Gobot <gobot@golang.org>
    > Reviewed-by: Ian Lance Taylor <iant@golang.org>
    > 
    
    Change-Id: I7cf25464ae836489e0af4a59a4d534a5d25ee352
    Reviewed-on: https://go-review.googlesource.com/30650Reviewed-by: 's avatarBrad Fitzpatrick <bradfitz@golang.org>
    9b4f494e
Name
Last commit
Last update
bpf Loading commit data...
context Loading commit data...
dict Loading commit data...
html Loading commit data...
http2 Loading commit data...
icmp Loading commit data...
idna Loading commit data...
internal Loading commit data...
ipv4 Loading commit data...
ipv6 Loading commit data...
lex/httplex Loading commit data...
lif Loading commit data...
netutil Loading commit data...
proxy Loading commit data...
publicsuffix Loading commit data...
route Loading commit data...
trace Loading commit data...
webdav Loading commit data...
websocket Loading commit data...
xsrftoken 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 Loading commit data...
codereview.cfg Loading commit data...