From e6982fadd2b5b6a8172fca86cfd2e7158fdd0523 Mon Sep 17 00:00:00 2001 From: Austin Clements Date: Wed, 21 Jan 2015 16:20:14 +0000 Subject: [PATCH] Revert "runtime: fix trigger for concurrent GC" This reverts commit 44529d939192c3034a04e2eff865d04ee51ae532. Change-Id: I7671e2cd6f6a476efffa16e8110500a98258c0c1 Reviewed-on: https://go-review.googlesource.com/3130 Reviewed-by: Austin Clements --- src/runtime/malloc.go | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/src/runtime/malloc.go b/src/runtime/malloc.go index 014b122b53..223220a570 100644 --- a/src/runtime/malloc.go +++ b/src/runtime/malloc.go @@ -31,12 +31,10 @@ type pageID uintptr // base address for all 0-byte allocations var zerobase uintptr -// triggers the concurrent GC when 1/triggerratio memory is available to allocate. -// Adjust this ratio as part of a scheme to ensure that mutators have enough -// memory to allocate in durring a concurrent GC cycle. -var triggerratio = uint64(8) - // Determine whether to initiate a GC. +// Currently the primitive heuristic we use will start a new +// concurrent GC when approximately half the available space +// made available by the last GC cycle has been used. // If the GC is already working no need to trigger another one. // This should establish a feedback loop where if the GC does not // have sufficient time to complete then more memory will be @@ -46,7 +44,7 @@ var triggerratio = uint64(8) // A false negative simple does not start a GC, a false positive // will start a GC needlessly. Neither have correctness issues. func shouldtriggergc() bool { - return memstats.heap_alloc+memstats.heap_alloc/triggerratio >= memstats.next_gc && atomicloaduint(&bggc.working) == 0 + return memstats.heap_alloc+memstats.heap_alloc*3/4 >= memstats.next_gc && atomicloaduint(&bggc.working) == 0 } // Allocate an object of size bytes. -- 2.50.0