Встречается на собеседованиях • сегодня

Расскажи про самую сложную проблему которую решал

Одна из самых сложных проблем — это утечка памяти в долгоживущем асинхронном сервисе на Python. Сервис парсил данные через API, используя aiohttp, и со временем начинал потреблять гигабайты RAM.

Проблема:

  • Неочевидные циклические ссылки в кэше (например, декораторы с lru_cache + корутины).
  • Неправильное управление сессиями aiohttp (сессии не закрывались).

Решение:

  1. Добавил weakref для кэша.
  2. Использовал async with для сессий.
  3. Включил tracemalloc для мониторинга утечек.

Пример:

python
import weakref
from functools import lru_cache

@lru_cache(maxsize=1000)
def cached_func():
    return weakref.proxy(heavy_object)  # Избегаем жестких ссылок

Проблема решилась после недели профилирования и рефакторинга.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы