mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: don't flush local_tinyallocs
This change makes local_tinyallocs work like the rest of the malloc stats and doesn't flush local_tinyallocs, instead making that the source-of-truth. Change-Id: I3e6cb5f1b3d086e432ce7d456895511a48e3617a Reviewed-on: https://go-review.googlesource.com/c/go/+/246967 Trust: Michael Knyszek <mknyszek@google.com> Run-TryBot: Michael Knyszek <mknyszek@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Michael Pratt <mpratt@google.com>
This commit is contained in:
parent
a5088e76f1
commit
cca3d1e553
4 changed files with 14 additions and 11 deletions
|
|
@ -339,7 +339,7 @@ func ReadMemStatsSlow() (base, slow MemStats) {
|
|||
|
||||
// Add in frees. readmemstats_m flushed the cached stats, so
|
||||
// these are up-to-date.
|
||||
var largeFree, smallFree uint64
|
||||
var tinyAllocs, largeFree, smallFree uint64
|
||||
for _, p := range allp {
|
||||
c := p.mcache
|
||||
if c == nil {
|
||||
|
|
@ -349,6 +349,9 @@ func ReadMemStatsSlow() (base, slow MemStats) {
|
|||
largeFree += uint64(c.local_largefree)
|
||||
slow.Frees += uint64(c.local_nlargefree)
|
||||
|
||||
// Collect tiny allocation stats.
|
||||
tinyAllocs += uint64(c.local_tinyallocs)
|
||||
|
||||
// Collect per-sizeclass stats.
|
||||
for i := 0; i < _NumSizeClasses; i++ {
|
||||
slow.Frees += uint64(c.local_nsmallfree[i])
|
||||
|
|
@ -357,7 +360,7 @@ func ReadMemStatsSlow() (base, slow MemStats) {
|
|||
smallFree += uint64(c.local_nsmallfree[i]) * uint64(class_to_size[i])
|
||||
}
|
||||
}
|
||||
slow.Frees += memstats.tinyallocs
|
||||
slow.Frees += tinyAllocs
|
||||
slow.Mallocs += slow.Frees
|
||||
|
||||
slow.TotalAlloc = slow.Alloc + largeFree + smallFree
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue