From: Rick Hudson Date: Tue, 28 Apr 2015 13:07:51 +0000 (-0400) Subject: runtime: Reduce calls to shouldtriggergc X-Git-Tag: go1.5beta1~764 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=b86e71f5aae4bd2cd2b1010e1c57909c068178cc;p=gostls13.git 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 --- diff --git a/src/runtime/malloc.go b/src/runtime/malloc.go index 91d69b5a9b..22ad6b581f 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