runtime: add memory prefetching to GC
benchmark old ns/op new ns/op delta garbage.BenchmarkParser 4448988000 4370531000 -1.76% garbage.BenchmarkParser-2 4086045000 4023083000 -1.54% garbage.BenchmarkParser-4 3677365000 3667020000 -0.28% garbage.BenchmarkParser-8 3517253000 3543946000 +0.76% garbage.BenchmarkParser-16 3506562000 3512518000 +0.17% garbage.BenchmarkTree 494435529 505784058 +2.30% garbage.BenchmarkTree-2 499652705 502774823 +0.62% garbage.BenchmarkTree-4 468482117 465713352 -0.59% garbage.BenchmarkTree-8 488533235 482287000 -1.28% garbage.BenchmarkTree-16 507835176 500654882 -1.41% garbage.BenchmarkTree2 31453900 28804600 -8.42% garbage.BenchmarkTree2-2 21440600 19065800 -11.08% garbage.BenchmarkTree2-4 10982000 10009100 -8.86% garbage.BenchmarkTree2-8 7544700 6479800 -14.11% garbage.BenchmarkTree2-16 7049500 6163200 -12.57% garbage.BenchmarkParserPause 135815000 125360666 -7.70% garbage.BenchmarkParserPause-2 92691523 84365476 -8.98% garbage.BenchmarkParserPause-4 53392190 46995809 -11.98% garbage.BenchmarkParserPause-8 36059523 30998900 -14.03% garbage.BenchmarkParserPause-16 30174300 27613350 -8.49% garbage.BenchmarkTreePause 20969784 22568102 +7.62% garbage.BenchmarkTreePause-2 20215875 20975130 +3.76% garbage.BenchmarkTreePause-4 17240709 17180666 -0.35% garbage.BenchmarkTreePause-8 18196386 18205870 +0.05% garbage.BenchmarkTreePause-16 20621158 20486867 -0.65% garbage.BenchmarkTree2Pause 173992142 159995285 -8.04% garbage.BenchmarkTree2Pause-2 131281904 118013714 -10.11% garbage.BenchmarkTree2Pause-4 93484952 85092666 -8.98% garbage.BenchmarkTree2Pause-8 88950523 77340809 -13.05% garbage.BenchmarkTree2Pause-16 86071238 76557952 -11.05% garbage.BenchmarkParserLastPause 327247000 288205000 -11.93% garbage.BenchmarkParserLastPause-2 217039000 187336000 -13.69% garbage.BenchmarkParserLastPause-4 119722000 105069000 -12.24% garbage.BenchmarkParserLastPause-8 70806000 64755000 -8.55% garbage.BenchmarkParserLastPause-16 62813000 53486000 -14.85% garbage.BenchmarkTreeLastPause 28420000 29735000 +4.63% garbage.BenchmarkTreeLastPause-2 23514000 25427000 +8.14% garbage.BenchmarkTreeLastPause-4 21773000 19548000 -10.22% garbage.BenchmarkTreeLastPause-8 24072000 24046000 -0.11% garbage.BenchmarkTreeLastPause-16 25149000 25291000 +0.56% garbage.BenchmarkTree2LastPause 314491000 287988000 -8.43% garbage.BenchmarkTree2LastPause-2 214363000 190616000 -11.08% garbage.BenchmarkTree2LastPause-4 109778000 100052000 -8.86% garbage.BenchmarkTree2LastPause-8 75390000 64753000 -14.11% garbage.BenchmarkTree2LastPause-16 70333000 61484000 -12.58% FTR, below are result with the empty prefetch function, that is, single RET but no real prefetching. It suggests that inlinable PREFETCH is worth pursuing. benchmark old ns/op new ns/op delta garbage.BenchmarkParser 4448988000 4560488000 +2.51% garbage.BenchmarkParser-2 4086045000 4129728000 +1.07% garbage.BenchmarkParser-4 3677365000 3728672000 +1.40% garbage.BenchmarkParser-8 3517253000 3583968000 +1.90% garbage.BenchmarkParser-16 3506562000 3591414000 +2.42% garbage.BenchmarkTree 494435529 499580882 +1.04% garbage.BenchmarkTree-4 468482117 467387294 -0.23% garbage.BenchmarkTree-8 488533235 478311117 -2.09% garbage.BenchmarkTree-2 499652705 499324235 -0.07% garbage.BenchmarkTree-16 507835176 502005705 -1.15% garbage.BenchmarkTree2 31453900 33296800 +5.86% garbage.BenchmarkTree2-2 21440600 22466400 +4.78% garbage.BenchmarkTree2-4 10982000 11402700 +3.83% garbage.BenchmarkTree2-8 7544700 7476500 -0.90% garbage.BenchmarkTree2-16 7049500 7338200 +4.10% garbage.BenchmarkParserPause 135815000 139529142 +2.73% garbage.BenchmarkParserPause-2 92691523 95229190 +2.74% garbage.BenchmarkParserPause-4 53392190 53083476 -0.58% garbage.BenchmarkParserPause-8 36059523 34594800 -4.06% garbage.BenchmarkParserPause-16 30174300 30063300 -0.37% garbage.BenchmarkTreePause 20969784 21866920 +4.28% garbage.BenchmarkTreePause-2 20215875 20731125 +2.55% garbage.BenchmarkTreePause-4 17240709 17275837 +0.20% garbage.BenchmarkTreePause-8 18196386 17898777 -1.64% garbage.BenchmarkTreePause-16 20621158 20662772 +0.20% garbage.BenchmarkTree2Pause 173992142 184336857 +5.95% garbage.BenchmarkTree2Pause-2 131281904 138005714 +5.12% garbage.BenchmarkTree2Pause-4 93484952 98449238 +5.31% garbage.BenchmarkTree2Pause-8 88950523 89286095 +0.38% garbage.BenchmarkTree2Pause-16 86071238 89568666 +4.06% garbage.BenchmarkParserLastPause 327247000 342189000 +4.57% garbage.BenchmarkParserLastPause-2 217039000 217224000 +0.09% garbage.BenchmarkParserLastPause-4 119722000 121327000 +1.34% garbage.BenchmarkParserLastPause-8 70806000 71941000 +1.60% garbage.BenchmarkParserLastPause-16 62813000 60166000 -4.21% garbage.BenchmarkTreeLastPause 28420000 27840000 -2.04% garbage.BenchmarkTreeLastPause-2 23514000 27390000 +16.48% garbage.BenchmarkTreeLastPause-4 21773000 21414000 -1.65% garbage.BenchmarkTreeLastPause-8 24072000 21705000 -9.83% garbage.BenchmarkTreeLastPause-16 25149000 23932000 -4.84% garbage.BenchmarkTree2LastPause 314491000 332894000 +5.85% garbage.BenchmarkTree2LastPause-2 214363000 224611000 +4.78% garbage.BenchmarkTree2LastPause-4 109778000 113976000 +3.82% garbage.BenchmarkTree2LastPause-8 75390000 67223000 -10.83% garbage.BenchmarkTree2LastPause-16 70333000 73216000 +4.10% R=golang-dev, rsc CC=golang-dev https://golang.org/cl/5991057
Showing
Please
register
or
sign in
to comment