Python 3.4+tracemallocпонятие
tracemalloc.StatisticDiff
снимки
Строка разности двух снимков: size_diff и count_diff показывают, на сколько выросла или упала память в месте выделения.
Синтаксис
for diff in new.compare_to(old, 'lineno'): diff.size_diff, diff.count_diff
Получается из new.compare_to(old, ...) — порядок важен: снимок, с которым сравнивают, передаётся аргументом. Список отсортирован по абсолютной величине size_diff, поэтому сверху может оказаться место, где память УМЕНЬШИЛАСЬ — смотрите на знак. size и count — значения в новом снимке, а не разность.
Примеры
import tracemalloc
tracemalloc.start()
old = tracemalloc.take_snapshot()
leak = [bytes(100) for _ in range(1000)]
new = tracemalloc.take_snapshot()
top = new.compare_to(old, 'lineno')[0]
print(top.traceback[0].lineno, top.size_diff > 0, top.count_diff >= 1000) # → 4 True True
print(top.size >= top.size_diff) # → True
tracemalloc.stop()
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности