Python 3.4+tracemallocфункция
tracemalloc.start()
управление трассировкой
Включает трассировку выделений памяти Python; nframe задаёт, сколько кадров стека хранить у каждого выделения.
Синтаксис
tracemalloc.start(nframe=1)
Видно только то, что выделено ПОСЛЕ start(): объекты, созданные раньше, для tracemalloc не существуют, и get_object_traceback() вернёт для них None. Поэтому start() зовут в самом начале программы или включают трассировку переменной окружения PYTHONTRACEMALLOC=1 / ключом -X tracemalloc. Трассировка замедляет программу в разы и ест память на сами трассы; nframe=25 вместо 1 делает это заметно дороже.
Примеры
import tracemalloc
early = bytes(1000)
tracemalloc.start()
late = bytes(1000)
print(tracemalloc.get_object_traceback(early)) # → None
print(tracemalloc.get_object_traceback(late) is not None) # → True
tracemalloc.stop()
import tracemalloc
tracemalloc.start(10)
print(tracemalloc.get_traceback_limit()) # → 10
tracemalloc.stop()
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности