Память в браузерах и Node.js: ограничения, утечки и нестандартные оптимизацииОграниченияВнезапно, память не бесконечна, хотя и позволяет хранить весьма много.
Так, могут быть сложности со строками и массивами больше 512 мб.
Да и сall stack то же не бесконечен: 6к-20к вызовов, а иногда и меньше.
Soft-утечки-
неожиданно долгоживущий объект ссылается на короткоживущий
- долгоживущий объект
неожиданно ссылается на короткоживущий
Причины:
- большой объект в замыкании
- неожиданно долгоживущий колбек, например в setInterval или DOMContentLoaded
- большие объекты в кеше
- нет контроля размера кеша
В дебаге поможет- Memory Allocation Timeline записывает выделение и освобождение памяти, но хватит лишь на несколько минут
- метод трех снапшотов для более сложных и долгих утечек
А вы знали что- загруженный нодой исходный код модуля не удаляется из памяти
- кеш путей(!) к модулям может разрастаться и до десятков мегабайт
habr.com/post/666870#browser #nodejs
@webcodernotes