[dev.garbage] runtime: eliminate heapBitsSetTypeNoScan
It's no longer necessary to maintain the bitmap of noscan objects since we now use the span metadata to determine that they're noscan instead of the bitmap. The combined effect of segregating noscan spans and the follow-on optimizations is almost no effect on the go1 benchmarks and a 1.19% improvement in the garbage benchmark: name old time/op new time/op delta XBenchGarbage-12 2.13ms ± 2% 2.11ms ± 1% -1.19% (p=0.000 n=19+20) name old time/op new time/op delta BinaryTree17-12 2.42s ± 1% 2.41s ± 1% -0.50% (p=0.001 n=20+17) Fannkuch11-12 2.14s ± 0% 2.12s ± 0% -0.91% (p=0.000 n=20+17) FmtFprintfEmpty-12 45.2ns ± 0% 45.2ns ± 1% ~ (p=0.677 n=16+19) FmtFprintfString-12 131ns ± 0% 132ns ± 1% +0.57% (p=0.000 n=16+20) FmtFprintfInt-12 126ns ± 1% 126ns ± 0% ~ (p=0.078 n=18+16) FmtFprintfIntInt-12 199ns ± 0% 195ns ± 0% -2.19% (p=0.000 n=14+20) FmtFprintfPrefixedInt-12 196ns ± 1% 196ns ± 0% ~ (p=0.155 n=19+16) FmtFprintfFloat-12 254ns ± 0% 253ns ± 0% -0.50% (p=0.000 n=14+19) FmtManyArgs-12 803ns ± 1% 798ns ± 0% -0.71% (p=0.000 n=18+19) GobDecode-12 7.11ms ± 1% 7.07ms ± 1% -0.50% (p=0.024 n=18+19) GobEncode-12 5.87ms ± 0% 5.86ms ± 1% ~ (p=0.113 n=19+20) Gzip-12 218ms ± 1% 218ms ± 1% ~ (p=0.879 n=19+20) Gunzip-12 37.2ms ± 0% 37.3ms ± 0% +0.14% (p=0.047 n=19+20) HTTPClientServer-12 80.5µs ± 6% 82.8µs ± 8% +2.91% (p=0.008 n=19+20) JSONEncode-12 15.4ms ± 1% 15.4ms ± 1% -0.32% (p=0.003 n=18+19) JSONDecode-12 55.1ms ± 1% 53.0ms ± 1% -3.87% (p=0.000 n=18+20) Mandelbrot200-12 4.08ms ± 1% 4.10ms ± 1% +0.34% (p=0.001 n=19+17) GoParse-12 3.20ms ± 1% 3.21ms ± 1% ~ (p=0.138 n=19+19) RegexpMatchEasy0_32-12 70.6ns ± 2% 70.4ns ± 2% ~ (p=0.343 n=20+20) RegexpMatchEasy0_1K-12 240ns ± 0% 242ns ± 2% +0.88% (p=0.000 n=15+20) RegexpMatchEasy1_32-12 70.5ns ± 1% 70.2ns ± 3% ~ (p=0.053 n=18+20) RegexpMatchEasy1_1K-12 374ns ± 1% 374ns ± 1% ~ (p=0.705 n=20+19) RegexpMatchMedium_32-12 108ns ± 1% 108ns ± 1% ~ (p=0.854 n=20+19) RegexpMatchMedium_1K-12 33.5µs ± 1% 33.6µs ± 2% ~ (p=0.897 n=18+20) RegexpMatchHard_32-12 1.76µs ± 1% 1.75µs ± 1% ~ (p=0.771 n=18+18) RegexpMatchHard_1K-12 52.8µs ± 1% 52.8µs ± 1% ~ (p=0.678 n=17+19) Revcomp-12 381ms ± 1% 380ms ± 0% ~ (p=0.320 n=20+16) Template-12 65.6ms ± 1% 65.1ms ± 2% -0.75% (p=0.003 n=20+20) TimeParse-12 324ns ± 1% 326ns ± 1% +0.72% (p=0.000 n=18+18) TimeFormat-12 342ns ± 0% 343ns ± 1% +0.22% (p=0.004 n=15+18) [Geo mean] 52.4µs 52.3µs -0.18% Change-Id: Ic77faaa15cdac3bfbbb0032dde5c204e05a0fd8e Reviewed-on: https://go-review.googlesource.com/23702Reviewed-by: Rick Hudson <rlh@golang.org>
Showing
Please
register
or
sign in
to comment