Встречается на собеседованиях • сегодня
Как обнаружить утечку памяти
В Python утечки памяти чаще всего возникают из-за циклических ссылок или неосвобождаемых объектов. Для обнаружения:
- Используй
gcмодуль:
python
import gc
gc.set_debug(gc.DEBUG_LEAK) # Включаем отладочную информацию- Проверь количество объектов:
python
len(gc.get_objects()) # Сравниваем до и после подозрительного кода- Используй
tracemalloc(Python 3.4+):
python
import tracemalloc
tracemalloc.start()
# ... выполняем код ...
snapshot = tracemalloc.take_snapshot()
for stat in snapshot.statistics('lineno')[:10]:
print(stat)- Профилировщики:
memory_profiler(@profileдекоратор)objgraphдля визуализации ссылокpymplerдля детального анализа
Пример с objgraph:
python
import objgraph
objgraph.show_most_common_types(limit=20) # Показывает 20 самых частых типовОсобое внимание стоит уделять:
- Циклическим ссылкам (особенно в графах объектов)
- Кэшам и глобальным переменным
- Не закрытым файлам/соединениям
- Большим структурам данных, которые не очищаются

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы