From 4a7d5aa30bab454f546d8f3b6d4b4a27585f1433 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Mon, 25 Sep 2017 15:17:28 -0400 Subject: [PATCH] runtime: don't use GOGC in minimum sweep distance Currently, the minimum sweep distance is 1MB * GOGC/100. It's been this way since it was introduced in CL 13043 with no justification. Since there seems to be no good reason to scale the minimum sweep distance by GOGC, make the minimum sweep distance just 1MB. Change-Id: I5320574a23c0eec641e346282aab08a3bbb057da Reviewed-on: https://go-review.googlesource.com/c/go/+/66091 Run-TryBot: Austin Clements TryBot-Result: Gobot Gobot Reviewed-by: Michael Knyszek Reviewed-by: Rick Hudson --- src/runtime/mgc.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/runtime/mgc.go b/src/runtime/mgc.go index 730b64cd19..023ab2f6ea 100644 --- a/src/runtime/mgc.go +++ b/src/runtime/mgc.go @@ -141,7 +141,7 @@ const ( // sweepMinHeapDistance is a lower bound on the heap distance // (in bytes) reserved for concurrent sweeping between GC - // cycles. This will be scaled by gcpercent/100. + // cycles. sweepMinHeapDistance = 1024 * 1024 ) @@ -803,7 +803,7 @@ func gcSetTriggerRatio(triggerRatio float64) { // that concurrent sweep has some heap growth // in which to perform sweeping before we // start the next GC cycle. - sweepMin := atomic.Load64(&memstats.heap_live) + sweepMinHeapDistance*uint64(gcpercent)/100 + sweepMin := atomic.Load64(&memstats.heap_live) + sweepMinHeapDistance if sweepMin > minTrigger { minTrigger = sweepMin } -- 2.48.1