• Dmitry Vyukov's avatar
    time: speed up Since and Until · fc3f8d43
    Dmitry Vyukov authored
    time.now is somewhat expensive (much more expensive than nanotime),
    in the common case when Time has monotonic time we don't actually
    need to call time.now in Since/Until as we can do calculation
    based purely on monotonic times.
    
    name                  old time/op  new time/op  delta
    TCP4OneShotTimeout-6  17.0µs ± 0%  17.1µs ± 1%     ~     (p=0.151 n=5+5)
    SetReadDeadline-6      261ns ± 0%   234ns ± 1%  -10.35%  (p=0.008 n=5+5)
    
    Benchmark that only calls Until:
    
    benchmark            old ns/op     new ns/op     delta
    BenchmarkUntil       54.0          29.5          -45.37%
    
    Update #25729
    
    Change-Id: I5ac5af3eb1fe9f583cf79299f10b84501b1a0d7d
    Reviewed-on: https://go-review.googlesource.com/c/146341
    Run-TryBot: Dmitry Vyukov <dvyukov@google.com>
    Reviewed-by: default avatarIan Lance Taylor <iant@golang.org>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    fc3f8d43
time.go 44.8 KB