Какие плюсы и минусы утечки памяти?
Производительность в JS
У утечек памяти нет плюсов — это дефект. «Минусы»: рост потребления памяти, замедление, зависания, краши. Вопрос, вероятно, про последствия и причины утечек.
Утечка памяти — это баг
Утечка — когда объекты остаются в памяти, хотя больше не нужны (на них есть ненужные ссылки). Это проблема, а не фича — плюсов нет.
Последствия (минусы) утечек
- Рост потребления памяти — приложение занимает всё больше RAM со временем.
- Замедление — при нехватке памяти система свопит, GC работает чаще (паузы).
- Зависания и краши — при исчерпании памяти вкладка/приложение падает (
Out of Memory). - Плохой UX — долгие сессии деградируют (особенно SPA, где страница не перезагружается).
- Проблемы на слабых устройствах — мобильные с малой памятью страдают первыми.
Причины утечек
- Забытые таймеры/интервалы (без
clearInterval). - Неудалённые обработчики (без
removeEventListener). - Замыкания, удерживающие большие объекты.
- Растущие глобальные кеши.
- Detached DOM-узлы (ссылки на удалённые элементы).
Как избегать
- Очищать ресурсы (cleanup в
useEffect,clearInterval,removeEventListener). - Ограничивать кеши (LRU).
WeakMap/WeakSetдля слабых ссылок.- Диагностика — DevTools Memory (heap snapshots).
Коротко для собеседования
У утечек памяти плюсов нет — это дефект. Последствия: рост потребления RAM, замедление (частый GC, своп), зависания и краши (Out of Memory), деградация долгих сессий (особенно SPA), проблемы на слабых устройствах. Причины: забытые таймеры/обработчики, замыкания, растущие кеши, detached DOM. Избегают очисткой ресурсов, WeakMap, диагностикой в DevTools Memory.