Встречается на собеседованиях • сегодня
Как затрачивается память в асинхронности
В асинхронном 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
интервью вопросы и ответы