]> Cypherpunks repositories - gostls13.git/commitdiff
runtime: Reduce calls to shouldtriggergc
authorRick Hudson <rlh@golang.org>
Tue, 28 Apr 2015 13:07:51 +0000 (09:07 -0400)
committerRick Hudson <rlh@golang.org>
Mon, 4 May 2015 17:38:58 +0000 (17:38 +0000)
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 <austin@google.com>
src/runtime/malloc.go

index 91d69b5a9bf75a858a3e885e56abe9ee4a795279..22ad6b581f52437d1784d63b6861313ad20164b3 100644 (file)
@@ -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