Commit b86e71f5 authored by Rick Hudson's avatar Rick Hudson

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/9403Reviewed-by: 's avatarAustin Clements <austin@google.com>
parent b79db4f2
...@@ -684,7 +684,7 @@ func mallocgc(size uintptr, typ *_type, flags uint32) unsafe.Pointer { ...@@ -684,7 +684,7 @@ func mallocgc(size uintptr, typ *_type, flags uint32) unsafe.Pointer {
} }
} }
if shouldtriggergc() { if shouldhelpgc && shouldtriggergc() {
startGC(gcBackgroundMode) startGC(gcBackgroundMode)
} else if gcBlackenEnabled != 0 { } else if gcBlackenEnabled != 0 {
// Assist garbage collector. We delay this until the // Assist garbage collector. We delay this until the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment