Python 3.4+tracemallocфункция
tracemalloc.get_object_traceback()
трассы и кадры
Возвращает Traceback — где был создан объект, — или None, если его выделение не отслеживалось.
Синтаксис
tracemalloc.get_object_traceback(obj) -> Traceback | None
None приходит не только для объектов, созданных до start(): маленькие кортежи, списки и числа CPython берёт из своих кешей и списков свободных блоков, а такое «выделение» в аллокатор не попадает. Надёжно трассируются свежие крупные объекты (bytes(1000), экземпляры классов). По умолчанию в трассе один кадр — строка создания; вызывающих видно лишь при start(nframe>1).
Примеры
import tracemalloc
tracemalloc.start(5)
def make():
return bytes(1000)
obj = make()
tb = tracemalloc.get_object_traceback(obj)
print([frame.lineno for frame in tb]) # → [5, 4]
tracemalloc.stop()
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности