1. 16 Jan, 2014 1 commit
    • Dmitriy Vyukov's avatar
      runtime: use lock-free ring for work queues · 4722b1cb
      Dmitriy Vyukov authored
      Use lock-free fixed-size ring for work queues
      instead of an unbounded mutex-protected array.
      The ring has single producer and multiple consumers.
      If the ring overflows, work is put onto global queue.
      
      benchmark              old ns/op    new ns/op    delta
      BenchmarkMatmult               7            5  -18.12%
      BenchmarkMatmult-4             2            2  -18.98%
      BenchmarkMatmult-16            1            0  -12.84%
      
      BenchmarkCreateGoroutines                     105           88  -16.10%
      BenchmarkCreateGoroutines-4                   376          219  -41.76%
      BenchmarkCreateGoroutines-16                  241          174  -27.80%
      BenchmarkCreateGoroutinesParallel             103           87  -14.66%
      BenchmarkCreateGoroutinesParallel-4           169          143  -15.38%
      BenchmarkCreateGoroutinesParallel-16          158          151   -4.43%
      
      R=golang-codereviews, rsc
      CC=ddetlefs, devon.odell, golang-codereviews
      https://golang.org/cl/46170044
      4722b1cb
  2. 15 Jan, 2014 7 commits
  3. 14 Jan, 2014 22 commits
  4. 13 Jan, 2014 10 commits