Python 3.4+tracemallocпонятие
tracemalloc.Trace
трассы и кадры
Одна трасса — один живой блок памяти: его размер size, домен domain и traceback места выделения.
Синтаксис
for trace in snapshot.traces: trace.size, trace.domain, trace.traceback
Snapshot.traces — последовательность Trace без группировки: блоков в программе десятки тысяч, перебирать их вручную медленно и неудобно, поэтому обычно зовут statistics(). Сам Trace не создают — его отдаёт снимок. domain почти всегда 0 (память Python), иное значение пишут C-расширения.
Примеры
import tracemalloc
tracemalloc.start()
blob = bytes(50_000)
snap = tracemalloc.take_snapshot()
big = max(snap.traces, key=lambda t: t.size)
print(type(big).__name__, big.domain, big.size >= 50_000) # → Trace 0 True
print(big.traceback[0].lineno) # → 3
tracemalloc.stop()
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности