Описание
По одной строке на каждое активное семплированное выделение памяти из профилировщика кучи jemalloc; при чтении таблицы формируется (flush) новый профиль кучи. Учитываются только потоки, в которых включён профилировщик (настройкаjemalloc_enable_profiler или параметр конфигурации jemalloc_enable_global_profiler); каждая строка соответствует примерно weight однотипным выделениям.
Столбцы
trace(Array(UInt64)) — Адреса стека вызовов при выделении памяти, начиная с конечного кадра (по тому же соглашению, что иsystem.trace_log.trace). Для символизации используйтеaddressToSymbolиdemangle(требуетсяallow_introspection_functions).age_ns(UInt64) — Время существования выделения памяти в наносекундах относительно момента сброса профиля на диск.size(UInt64) — Запрошенный размер выделения памяти в байтах.usize(UInt64) — Доступный размер в байтах, то есть класс размера, до которого был округлён запрос.size_class(UInt16) — Индекс класса размера. Для малых классов размера соответствуетsystem.jemalloc_bins.index.arena(UInt32) — Индекс арены, из которой было выделено пространство.thr_uid(UInt64) — Уникальный внутренний ID jemalloc потока, выполнившего выделение памяти.sample_interval(UInt64) — Среднее число выделенных байтов между образцами, указанное в заголовке профиля. Одинаково для всех строк.
alloc_time— Псевдоним дляnow() - intDiv(age_ns, 1000000000).weight— Псевдоним для1 / (1 - exp((-usize) / sample_interval)).