summaryrefslogtreecommitdiff
path: root/AUTHORS
diff options
context:
space:
mode:
authorDmitriy Vyukov <dvyukov@google.com>2014-10-08 13:51:12 +0400
committerDmitriy Vyukov <dvyukov@google.com>2014-10-08 13:51:12 +0400
commit756b2d33e6d87ebb7bcf44b3bb4f25d137682e8d (patch)
tree4c32db73cb9735ca008183bda07bbf50f8f1c7ce /AUTHORS
parentfbad28ce50204ad5d57b0e04543030e3e6b63970 (diff)
downloadgo-756b2d33e6d87ebb7bcf44b3bb4f25d137682e8d.tar.gz
runtime: faster GC scan
The change contains 3 spot optimizations to scan loop: 1. Don't use byte vars, use uintptr's instead. This seems to alleviate some codegen issue, and alone accounts to a half of speedup. 2. Remove bitmap cache. Currently we cache only 1 byte, so caching is not particularly effective anyway. Removal of the cache simplifies code and positively affects regalloc. 3. Replace BitsMultiword switch with if and do debug checks only in Debug mode. I've benchmarked changes separately and ensured that each of them provides speedup on top of the previous one. This change as a whole fixes the unintentional regressions of scan loop that were introduced during development cycle. Fixes issue 8625. Fixes issue 8565. On go.benchmarks/garbage benchmark: GOMAXPROCS=1 time: -3.13% cputime: -3.22% gc-pause-one: -15.71% gc-pause-total: -15.71% GOMAXPROCS=32 time: -1.96% cputime: -4.43% gc-pause-one: -6.22% gc-pause-total: -6.22% LGTM=khr, rsc R=golang-codereviews, khr CC=golang-codereviews, rlh, rsc https://codereview.appspot.com/153990043
Diffstat (limited to 'AUTHORS')
0 files changed, 0 insertions, 0 deletions