From b86e71f5aae4bd2cd2b1010e1c57909c068178cc Mon Sep 17 00:00:00 2001 From: Rick Hudson Date: Tue, 28 Apr 2015 09:07:51 -0400 Subject: [PATCH] runtime: Reduce calls to shouldtriggergc shouldtriggergc is slightly expensive due to the call overhead and the use of an atomic. This CL reduces the number of time one checks if a GC should be done from one at each allocation to once when a span is allocated. Since shouldtriggergc is an important abstraction simply hand inlining it, along with its atomic instruction would lose the abstraction. Change-Id: Ia3210655b4b3d433f77064a21ecb54e4d9d435f7 Reviewed-on: https://go-review.googlesource.com/9403 Reviewed-by: Austin Clements --- src/runtime/malloc.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/runtime/malloc.go b/src/runtime/malloc.go index 91d69b5a9bf..22ad6b581f5 100644 --- a/src/runtime/malloc.go +++ b/src/runtime/malloc.go @@ -684,7 +684,7 @@ func mallocgc(size uintptr, typ *_type, flags uint32) unsafe.Pointer { } } - if shouldtriggergc() { + if shouldhelpgc && shouldtriggergc() { startGC(gcBackgroundMode) } else if gcBlackenEnabled != 0 { // Assist garbage collector. We delay this until the