• Dmitriy Vyukov's avatar
    runtime: eliminate contention during stack allocation · c9152a85
    Dmitriy Vyukov authored
    Standard-sized stack frames use plain malloc/free
    instead of centralized lock-protected FixAlloc.
    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
    BenchmarkStackGrowth                               1045.00       949.00   -9.19%
    BenchmarkStackGrowth-2                             3450.00       800.00  -76.81%
    BenchmarkStackGrowth-4                             5076.00       513.00  -89.89%
    BenchmarkStackGrowth-8                             7805.00       471.00  -93.97%
    BenchmarkStackGrowth-16                           11751.00       321.00  -97.27%
    
    R=golang-dev, rsc
    CC=golang-dev
    https://golang.org/cl/4657091
    c9152a85
malloc.h 13.5 KB