Встречается на 1% собеседований по Python
Как затрачивается память в асинхронности
В асинхронном Python (asyncio) память используется более эффективно по сравнению с потоками, так как корутины легковесны и работают в одном потоке. Однако есть нюансы:
- Корутины занимают меньше памяти, чем потоки (обычно ~1KB против ~8MB на поток)
- Event Loop хранит все задачи в памяти, что может стать проблемой при большом количестве задач
- Ожидающие задачи не освобождают память, пока не завершатся
Пример с утечкой памяти:
python
async def leaky_task():
data = [0] * 10_000_000 # Большой объект в памяти
await asyncio.sleep(3600)
async def main():
tasks = [asyncio.create_task(leaky_task()) for _ in range(1000)]
await asyncio.gather(*tasks)Для оптимизации:
- Используйте
asyncio.create_task()осознанно - Ограничивайте количество одновременных задач
- Освобождайте ресурсы явно через
try/finallyилиasync with

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