Descriptionruntime: tweak select performance
Make selectsend() accept pointer to the element,
it makes it possible to make Scase fixed-size
and allocate/free Select, all Scase's and all SudoG at once.
As a consequence SudoG freelist die out.
benchmark old,ns/op new,ns/op
BenchmarkSelectUncontended 1080 558
BenchmarkSelectUncontended-2 675 264
BenchmarkSelectUncontended-4 459 205
BenchmarkSelectContended 1086 560
BenchmarkSelectContended-2 1775 1672
BenchmarkSelectContended-4 2668 2149
(on Intel Q6600, 4 cores, 2.4GHz)
benchmark old ns/op new ns/op delta
BenchmarkSelectUncontended 517.00 326.00 -36.94%
BenchmarkSelectUncontended-2 281.00 166.00 -40.93%
BenchmarkSelectUncontended-4 250.00 83.10 -66.76%
BenchmarkSelectUncontended-8 107.00 47.40 -55.70%
BenchmarkSelectUncontended-16 67.80 41.30 -39.09%
BenchmarkSelectContended 513.00 325.00 -36.65%
BenchmarkSelectContended-2 699.00 628.00 -10.16%
BenchmarkSelectContended-4 1085.00 1092.00 +0.65%
BenchmarkSelectContended-8 3253.00 2477.00 -23.85%
BenchmarkSelectContended-16 5313.00 5116.00 -3.71%
(on Intel E5620, 8 HT cores, 2.4 GHz)
Patch Set 1 #Patch Set 2 : diff -r 220cd3510c65 https://go.googlecode.com/hg/ #Patch Set 3 : diff -r 220cd3510c65 https://go.googlecode.com/hg/ #Patch Set 4 : diff -r 122ea252305f https://go.googlecode.com/hg/ #Patch Set 5 : diff -r 122ea252305f https://go.googlecode.com/hg/ #Patch Set 6 : diff -r 122ea252305f https://go.googlecode.com/hg/ #Patch Set 7 : diff -r 122ea252305f https://go.googlecode.com/hg/ #Patch Set 8 : diff -r 122ea252305f https://go.googlecode.com/hg/ #
Total comments: 4
Patch Set 9 : diff -r a4c2e46af9b2 https://go.googlecode.com/hg/ #Patch Set 10 : diff -r a4c2e46af9b2 https://go.googlecode.com/hg/ #Patch Set 11 : diff -r a4c2e46af9b2 https://go.googlecode.com/hg/ #Patch Set 12 : diff -r 18d4de4963b7 https://go.googlecode.com/hg/ #Patch Set 13 : diff -r 18d4de4963b7 https://go.googlecode.com/hg/ #
Total comments: 4
Patch Set 14 : diff -r 18d4de4963b7 https://go.googlecode.com/hg/ #Patch Set 15 : diff -r 18d4de4963b7 https://go.googlecode.com/hg/ #Patch Set 16 : diff -r 18d4de4963b7 https://go.googlecode.com/hg/ #
MessagesTotal messages: 20
|