Вопрос проверяет знание практических инструментов диагностики памяти, а не только теории.
Для поиска утечек памяти используют как встроенные средства Python, так и внешние инструменты. Они помогают сравнивать снимки памяти и находить объекты, которые продолжают удерживаться. Часто анализируют рост памяти под нагрузкой. Важно сочетать инструменты профилирования и реальные сценарии использования. Один инструмент редко даёт полную картину.
Инструменты поиска memory leak — это средства, позволяющие измерять использование памяти и выявлять объекты, которые не освобождаются со временем.
tracemalloc
Встроенный модуль Python.
Показывает, где была выделена память.
Удобен для сравнения snapshot’ов.
objgraph
Анализирует граф объектов.
Помогает найти цепочки ссылок.
memory-profiler
Линейное измерение потребления памяти.
Полезен для анализа функций.
psutil
Мониторинг RSS процесса.
Удобен для долгоживущих сервисов.
Внешние профилировщики
Анализ на уровне процесса и ОС.
Полезны при сложных утечках.
Зафиксировать baseline.
Запустить нагрузку.
Сравнить снимки памяти.
Найти удерживаемые объекты и ссылки.
Поиск memory leak — это итеративный процесс, где инструменты помогают сузить область проблемы, но не заменяют понимание кода.