Description
One row per live sampled allocation from the jemalloc heap profiler; reading the table flushes a fresh heap profile. Only threads with the profiler armed contribute (jemalloc_enable_profiler setting or jemalloc_enable_global_profiler config); each row represents roughly weight similar allocations.
Columns
trace(Array(UInt64)) — Addresses of the allocating backtrace, leaf frame first (same convention assystem.trace_log.trace). Symbolize withaddressToSymbolanddemangle(requiresallow_introspection_functions).age_ns(UInt64) — Time in nanoseconds the allocation has been alive, relative to the moment the profile was flushed.size(UInt64) — Requested allocation size in bytes.usize(UInt64) — Usable size in bytes, i.e. the size class the request was rounded up to.size_class(UInt16) — Index of the size class. Joins tosystem.jemalloc_bins.indexfor small size classes.arena(UInt32) — Index of the arena the allocation was served from.thr_uid(UInt64) — jemalloc-internal unique id of the allocating thread.sample_interval(UInt64) — Average number of allocated bytes between samples, taken from the profile header. The same for all rows.
alloc_time— Alias fornow() - intDiv(age_ns, 1000000000).weight— Alias for1 / (1 - exp((-usize) / sample_interval)).