Python 3.4+tracemallocфункция
tracemalloc.take_snapshot()
снимки
Делает снимок всех текущих трасс выделений памяти и возвращает объект Snapshot для анализа.
Синтаксис
snapshot = tracemalloc.take_snapshot()
Без запущенной трассировки поднимает RuntimeError. Снимок — копия на момент вызова: по одному снимку виден лишь текущий расклад, а утечку показывает разность двух снимков через compare_to(). Снимок большой программы сам занимает заметную память и делается не мгновенно — не зовите его в горячем цикле.
Примеры
import tracemalloc
try:
tracemalloc.take_snapshot()
except RuntimeError as e:
print(type(e).__name__) # → RuntimeError
import tracemalloc
tracemalloc.start()
words = [str(i) * 10 for i in range(5000)]
snap = tracemalloc.take_snapshot()
top = snap.statistics('lineno')[0]
print(top.traceback[0].lineno) # → 3
tracemalloc.stop()
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности