Skip to main content

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ètre jemalloc_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 que system.trace_log.trace). À symboliser avec addressToSymbol et demangle (nécessite allow_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.index pour 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.
Aliases :
  • alloc_time — alias de now() - intDiv(age_ns, 1000000000).
  • weight — alias de 1 / (1 - exp((-usize) / sample_interval)).
Dernière modification le 26 septembre 2026