• Dmitriy Vyukov's avatar
    sync: improve Once fast path · d2ab2b9f
    Dmitriy Vyukov authored
    Use atomic.LoadUint32(&done) instead of
    atomic.AddInt32(&done, 0) on fast path.
    
    benchmark            old ns/op    new ns/op    delta
    BenchmarkOnce            13.40         7.26  -45.82%
    BenchmarkOnce-2          22.90         4.04  -82.36%
    BenchmarkOnce-4          25.60         2.16  -91.56%
    BenchmarkOnce-8          25.80         1.38  -94.65%
    BenchmarkOnce-16         24.40         1.33  -94.55%
    
    (on HP Z600, 2 x Intel Xeon E5620, 8 HT cores, 2.4 GHz)
    
    R=golang-dev, rsc
    CC=golang-dev
    https://golang.org/cl/4787041
    d2ab2b9f
Name
Last commit
Last update
doc Loading commit data...
include Loading commit data...
lib Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.hgignore Loading commit data...
.hgtags Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...