]> Cypherpunks repositories - gostls13.git/commit
runtime: faster parallel GC
authorDmitriy Vyukov <dvyukov@google.com>
Thu, 21 Mar 2013 08:48:02 +0000 (12:48 +0400)
committerDmitriy Vyukov <dvyukov@google.com>
Thu, 21 Mar 2013 08:48:02 +0000 (12:48 +0400)
commitd4c80d19a80cbdf946102f3b787ce23bf95e4e12
tree28cf9e3a6f9ee84f2d80fd3955d0fd94a3d5df05
parent656bc3eb960fb2af7fb057700dd2f5b352b21317
runtime: faster parallel GC
Use per-thread work buffers instead of global mutex-protected pool. This eliminates contention from parallel scan phase.

benchmark                             old ns/op    new ns/op    delta
garbage.BenchmarkTree2-8               97100768     71417553  -26.45%
garbage.BenchmarkTree2LastPause-8     970931485    714103692  -26.45%
garbage.BenchmarkTree2Pause-8         469127802    345029253  -26.45%
garbage.BenchmarkParser-8            2880950854   2715456901   -5.74%
garbage.BenchmarkParserLastPause-8    137047399    103336476  -24.60%
garbage.BenchmarkParserPause-8         80686028     58922680  -26.97%

R=golang-dev, 0xe2.0x9a.0x9b, dave, adg, rsc, iant
CC=golang-dev
https://golang.org/cl/7816044
src/pkg/runtime/mgc0.c
src/pkg/runtime/proc.c