Python Glossary English

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Сообщить о неточности