43 lines
1.9 KiB
Go
43 lines
1.9 KiB
Go
|
package z
|
||
|
|
||
|
import "sync/atomic"
|
||
|
|
||
|
var numBytes int64
|
||
|
|
||
|
// NumAllocBytes returns the number of bytes allocated using calls to z.Calloc. The allocations
|
||
|
// could be happening via either Go or jemalloc, depending upon the build flags.
|
||
|
func NumAllocBytes() int64 {
|
||
|
return atomic.LoadInt64(&numBytes)
|
||
|
}
|
||
|
|
||
|
// MemStats is used to fetch JE Malloc Stats. The stats are fetched from
|
||
|
// the mallctl namespace http://jemalloc.net/jemalloc.3.html#mallctl_namespace.
|
||
|
type MemStats struct {
|
||
|
// Total number of bytes allocated by the application.
|
||
|
// http://jemalloc.net/jemalloc.3.html#stats.allocated
|
||
|
Allocated uint64
|
||
|
// Total number of bytes in active pages allocated by the application. This
|
||
|
// is a multiple of the page size, and greater than or equal to
|
||
|
// Allocated.
|
||
|
// http://jemalloc.net/jemalloc.3.html#stats.active
|
||
|
Active uint64
|
||
|
// Maximum number of bytes in physically resident data pages mapped by the
|
||
|
// allocator, comprising all pages dedicated to allocator metadata, pages
|
||
|
// backing active allocations, and unused dirty pages. This is a maximum
|
||
|
// rather than precise because pages may not actually be physically
|
||
|
// resident if they correspond to demand-zeroed virtual memory that has not
|
||
|
// yet been touched. This is a multiple of the page size, and is larger
|
||
|
// than stats.active.
|
||
|
// http://jemalloc.net/jemalloc.3.html#stats.resident
|
||
|
Resident uint64
|
||
|
// Total number of bytes in virtual memory mappings that were retained
|
||
|
// rather than being returned to the operating system via e.g. munmap(2) or
|
||
|
// similar. Retained virtual memory is typically untouched, decommitted, or
|
||
|
// purged, so it has no strongly associated physical memory (see extent
|
||
|
// hooks http://jemalloc.net/jemalloc.3.html#arena.i.extent_hooks for
|
||
|
// details). Retained memory is excluded from mapped memory statistics,
|
||
|
// e.g. stats.mapped (http://jemalloc.net/jemalloc.3.html#stats.mapped).
|
||
|
// http://jemalloc.net/jemalloc.3.html#stats.retained
|
||
|
Retained uint64
|
||
|
}
|