• Dmitriy Vyukov's avatar
    sync: add fast path to Once · 93dde6b0
    Dmitriy Vyukov authored
    The implementation does not grab the lock,
    if Once is already initalized.
    Benchmark results on HP Z600 (2 x Xeon E5620, 8 HT cores, 2.40GHz)
    are as follows:
    benchmark                                        old ns/op    new ns/op    delta
    sync_test.BenchmarkOnce                             187.00        14.00  -92.51%
    sync_test.BenchmarkOnce-2                           909.00        21.40  -97.65%
    sync_test.BenchmarkOnce-4                          3684.00        20.90  -99.43%
    sync_test.BenchmarkOnce-8                          5987.00        23.00  -99.62%
    sync_test.BenchmarkOnce-16                         5051.00        21.60  -99.57%
    
    R=bradfitz, rsc
    CC=golang-dev
    https://golang.org/cl/4641066
    93dde6b0
Name
Last commit
Last update
..
atomic Loading commit data...
Makefile Loading commit data...
cond.go Loading commit data...
cond_test.go Loading commit data...
mutex.go Loading commit data...
mutex_test.go Loading commit data...
once.go Loading commit data...
once_test.go Loading commit data...
rwmutex.go Loading commit data...
rwmutex_test.go Loading commit data...
waitgroup.go Loading commit data...
waitgroup_test.go Loading commit data...