mirror of
https://github.com/golang/go
synced 2024-11-22 20:24:47 -07:00
runtime: make gcEffectiveGrowthRatio a method on gcControllerState
For #44167. Change-Id: Ie3cf8d2960c843a782ec85426fa73c279adaed64 Reviewed-on: https://go-review.googlesource.com/c/go/+/306605 Trust: Michael Knyszek <mknyszek@google.com> Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Michael Pratt <mpratt@google.com>
This commit is contained in:
parent
e9cc31e736
commit
7ec7a3cf33
@ -471,7 +471,7 @@ func (c *gcControllerState) endCycle(userForced bool) float64 {
|
|||||||
// growth if we had the desired CPU utilization). The
|
// growth if we had the desired CPU utilization). The
|
||||||
// difference between this estimate and the GOGC-based goal
|
// difference between this estimate and the GOGC-based goal
|
||||||
// heap growth is the error.
|
// heap growth is the error.
|
||||||
goalGrowthRatio := gcEffectiveGrowthRatio()
|
goalGrowthRatio := c.effectiveGrowthRatio()
|
||||||
actualGrowthRatio := float64(c.heapLive)/float64(c.heapMarked) - 1
|
actualGrowthRatio := float64(c.heapLive)/float64(c.heapMarked) - 1
|
||||||
assistDuration := nanotime() - c.markStartTime
|
assistDuration := nanotime() - c.markStartTime
|
||||||
|
|
||||||
@ -779,7 +779,7 @@ func (c *gcControllerState) commit(triggerRatio float64) {
|
|||||||
gcPaceScavenger()
|
gcPaceScavenger()
|
||||||
}
|
}
|
||||||
|
|
||||||
// gcEffectiveGrowthRatio returns the current effective heap growth
|
// effectiveGrowthRatio returns the current effective heap growth
|
||||||
// ratio (GOGC/100) based on heapMarked from the previous GC and
|
// ratio (GOGC/100) based on heapMarked from the previous GC and
|
||||||
// heapGoal for the current GC.
|
// heapGoal for the current GC.
|
||||||
//
|
//
|
||||||
@ -788,10 +788,10 @@ func (c *gcControllerState) commit(triggerRatio float64) {
|
|||||||
// heapMinimum, this can be higher than gcPercent/100.
|
// heapMinimum, this can be higher than gcPercent/100.
|
||||||
//
|
//
|
||||||
// mheap_.lock must be held or the world must be stopped.
|
// mheap_.lock must be held or the world must be stopped.
|
||||||
func gcEffectiveGrowthRatio() float64 {
|
func (c *gcControllerState) effectiveGrowthRatio() float64 {
|
||||||
assertWorldStoppedOrLockHeld(&mheap_.lock)
|
assertWorldStoppedOrLockHeld(&mheap_.lock)
|
||||||
|
|
||||||
egogc := float64(atomic.Load64(&gcController.heapGoal)-gcController.heapMarked) / float64(gcController.heapMarked)
|
egogc := float64(atomic.Load64(&c.heapGoal)-c.heapMarked) / float64(c.heapMarked)
|
||||||
if egogc < 0 {
|
if egogc < 0 {
|
||||||
// Shouldn't happen, but just in case.
|
// Shouldn't happen, but just in case.
|
||||||
egogc = 0
|
egogc = 0
|
||||||
|
Loading…
Reference in New Issue
Block a user