• Austin Clements's avatar
    runtime: make next_gc be heap size to trigger GC at · 6d12b178
    Austin Clements authored
    In the STW collector, next_gc was both the heap size to trigger GC at
    as well as the goal heap size.
    
    Early in the concurrent collector's development, next_gc was the goal
    heap size, but was also used as the heap size to trigger GC at. This
    meant we always overshot the goal because of allocation during
    concurrent GC.
    
    Currently, next_gc is still the goal heap size, but we trigger
    concurrent GC at 7/8*GOGC heap growth. This complicates
    shouldtriggergc, but was necessary because of the incremental
    maintenance of next_gc.
    
    Now we simply compute next_gc for the next cycle during mark
    termination. Hence, it's now easy to take the simpler route and
    redefine next_gc as the heap size at which the next GC triggers. We
    can directly compute this with the 7/8 backoff during mark termination
    and shouldtriggergc can simply test if the live heap size has grown
    over the next_gc trigger.
    
    This will also simplify later changes once we start setting next_gc in
    more sophisticated ways.
    
    Change-Id: I872be4ae06b4f7a0d7f7967360a054bd36b90eea
    Reviewed-on: https://go-review.googlesource.com/8420Reviewed-by: 's avatarRuss Cox <rsc@golang.org>
    6d12b178
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
lib/time Loading commit data...
misc Loading commit data...
src Loading commit data...
test Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTING.md Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
PATENTS Loading commit data...
README.md Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...