Python 3.4+tracemallocпонятие
tracemalloc.Filter
фильтры
Фильтр трасс по имени файла (шаблон fnmatch) и номеру строки: оставляет или исключает выделения из снимка.
Синтаксис
tracemalloc.Filter(inclusive, filename_pattern, lineno=None, all_frames=False, domain=None)
Первый аргумент inclusive: True — оставить только совпавшие, False — выбросить их. Несколько фильтров комбинируются так: трасса проходит, если совпала хотя бы с одним включающим и ни с одним исключающим. Типичный шум — Filter(False, '<frozen importlib._bootstrap>') и Filter(False, tracemalloc.__file__). По умолчанию проверяется только самый свежий кадр; all_frames=True смотрит всю трассу. Общий предок Filter и DomainFilter — недокументированный BaseFilter; сам по себе он не нужен.
Примеры
import tracemalloc
tracemalloc.start()
data = [bytes(50) for _ in range(100)]
snap = tracemalloc.take_snapshot()
mine = snap.filter_traces([tracemalloc.Filter(True, __file__)])
print(all(t.traceback[0].filename == __file__ for t in mine.traces)) # → True
print(len(mine.traces) <= len(snap.traces)) # → True — исходный снимок не изменился
tracemalloc.stop()
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности