Description
Une ligne par allocation active échantillonnée par le profiler de tas jemalloc ; la lecture de la table déclenche le flush d’un nouveau profil du tas. Seuls les threads dont le profiler est armé y contribuent (paramètrejemalloc_enable_profiler ou config jemalloc_enable_global_profiler) ; chaque ligne représente environ weight allocations similaires.
Colonnes
trace(Array(UInt64)) — Adresses de la pile d’appels ayant effectué l’allocation, la frame feuille en premier (même convention quesystem.trace_log.trace). À symboliser avecaddressToSymboletdemangle(nécessiteallow_introspection_functions).age_ns(UInt64) — Durée en nanosecondes pendant laquelle l’allocation est restée active, par rapport au moment où le profile a été flushé.size(UInt64) — Taille d’allocation demandée, en octets.usize(UInt64) — Taille utilisable en octets, c’est-à-dire la size class à laquelle la demande a été arrondie.size_class(UInt16) — Index de la size class. Se joint àsystem.jemalloc_bins.indexpour les petites size classes.arena(UInt32) — Index de l’arena depuis laquelle l’allocation a été servie.thr_uid(UInt64) — Identifiant unique interne à jemalloc du thread ayant effectué l’allocation.sample_interval(UInt64) — Nombre moyen d’octets alloués entre deux samples, issu du header du profile. Identique pour toutes les rows.
alloc_time— alias denow() - intDiv(age_ns, 1000000000).weight— alias de1 / (1 - exp((-usize) / sample_interval)).