]> Cypherpunks repositories - gostls13.git/commitdiff
Revert "runtime: fix trigger for concurrent GC"
authorAustin Clements <austin@google.com>
Wed, 21 Jan 2015 16:20:14 +0000 (16:20 +0000)
committerAustin Clements <austin@google.com>
Wed, 21 Jan 2015 16:29:17 +0000 (16:29 +0000)
This reverts commit 44529d939192c3034a04e2eff865d04ee51ae532.

Change-Id: I7671e2cd6f6a476efffa16e8110500a98258c0c1
Reviewed-on: https://go-review.googlesource.com/3130
Reviewed-by: Austin Clements <austin@google.com>
src/runtime/malloc.go

index 014b122b53491fbb65172a47cfb42366ccb71fff..223220a570ee97d5ef307488c5cdfb305de08b6f 100644 (file)
@@ -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.