Python Glossary English

Python 3.6+tracemallocпонятие

tracemalloc.DomainFilter

фильтры

Фильтр трасс по адресному пространству (domain): отделяет память Python от памяти, о которой сообщают C-расширения.

Синтаксис

tracemalloc.DomainFilter(inclusive, domain)

Python-аллокатор пишет всё в домен 0. Расширения вроде NumPy сообщают о своих буферах через C API в собственный домен, и в снимке такие трассы смешаны с обычными. DomainFilter(False, 0) оставляет только «чужую» память, DomainFilter(True, 0) — только память Python. В отличие от Filter, имя файла не проверяется. Появился в 3.6.

Примеры

import tracemalloc
tracemalloc.start()
data = bytes(10_000)
snap = tracemalloc.take_snapshot()
python_only = snap.filter_traces([tracemalloc.DomainFilter(True, 0)])
foreign = snap.filter_traces([tracemalloc.DomainFilter(False, 0)])
print(len(python_only.traces) > 0, len(foreign.traces))  # → True 0
tracemalloc.stop()

См. также

Открыть в полном глоссарииdocs.python.orgСообщить о неточности