diff options
| author | Austin Clements <austin@google.com> | 2017-03-31 17:09:41 -0400 |
|---|---|---|
| committer | Austin Clements <austin@google.com> | 2017-04-21 17:41:53 +0000 |
| commit | 49a412a5b7f2b7ca6278da199b812bac3c683046 (patch) | |
| tree | ec2f7a927067cfe78d4e6e49291f3d9d382ac069 /src/runtime/debug/garbage.go | |
| parent | 9d36163c0b35ddd384534f850fb04170e0d0c7c4 (diff) | |
| download | go-49a412a5b7f2b7ca6278da199b812bac3c683046.tar.xz | |
runtime: rationalize triggerRatio
gcController.triggerRatio is the only field in gcController that
persists across cycles. As global mutable state, the places where it
written and read are spread out, making it difficult to see that
updates and downstream calculations are done correctly.
Improve this situation by doing two things:
1) Move triggerRatio to memstats so it lives with the other
trigger-related fields and makes gcController entirely transient
state.
2) Commit the new trigger ratio during mark termination when we
compute other next-cycle controls, including the absolute trigger.
This forces us to explicitly thread the new trigger ratio from
gcController.endCycle to mark termination, so we're not just pulling
it out of global state.
Change-Id: I6669932f8039a8c0ef46a3f2a8c537db72e578aa
Reviewed-on: https://go-review.googlesource.com/39830
Run-TryBot: Austin Clements <austin@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Rick Hudson <rlh@golang.org>
Diffstat (limited to 'src/runtime/debug/garbage.go')
0 files changed, 0 insertions, 0 deletions
