runtime: make GC stats per-M
This is factored out part of:
https://golang.org/cl/
5279048/
(Parallel GC)
benchmark old ns/op new ns/op delta
garbage.BenchmarkParser
3999106750 3975026500 -0.60%
garbage.BenchmarkParser-2
3720553750 3719196500 -0.04%
garbage.BenchmarkParser-4
3502857000 3474980500 -0.80%
garbage.BenchmarkParser-8
3375448000 3341310500 -1.01%
garbage.BenchmarkParserLastPause
329401000 324097000 -1.61%
garbage.BenchmarkParserLastPause-2
208953000 214222000 +2.52%
garbage.BenchmarkParserLastPause-4
110933000 111656000 +0.65%
garbage.BenchmarkParserLastPause-8
71969000 78230000 +8.70%
garbage.BenchmarkParserPause
230808842 197237400 -14.55%
garbage.BenchmarkParserPause-2
123674365 125197595 +1.23%
garbage.BenchmarkParserPause-4
80518525 85710333 +6.45%
garbage.BenchmarkParserPause-8
58310243 56940512 -2.35%
garbage.BenchmarkTree2
31471700 31289400 -0.58%
garbage.BenchmarkTree2-2
21536800 21086300 -2.09%
garbage.BenchmarkTree2-4
11074700 10880000 -1.76%
garbage.BenchmarkTree2-8
7568600 7351400 -2.87%
garbage.BenchmarkTree2LastPause
314664000 312840000 -0.58%
garbage.BenchmarkTree2LastPause-2
215319000 210815000 -2.09%
garbage.BenchmarkTree2LastPause-4
110698000 108751000 -1.76%
garbage.BenchmarkTree2LastPause-8
75635000 73463000 -2.87%
garbage.BenchmarkTree2Pause
174280857 173147571 -0.65%
garbage.BenchmarkTree2Pause-2
131332714 129665761 -1.27%
garbage.BenchmarkTree2Pause-4
93803095 93422904 -0.41%
garbage.BenchmarkTree2Pause-8
86242333 85146761 -1.27%
R=rsc
CC=golang-dev
https://golang.org/cl/
5987045