По крайней мере, однажды в вашей карьере разработчика JavaScript наступит момент, когда вы столкнетесь с проблемой утечки памяти (обычно в производственной среде), и вы будете удивлены, узнав, что такая вещь существует (и вы должны принять заботиться о нем). Lol. Момент, когда ты станешь старшим разработчиком?
Недавно, работая над ezCreatives, я столкнулся с одной такой проблемой.


На самом деле я не собираюсь объяснять здесь какую-либо конкретную проблему, но укажу вам все важные ссылки и ресурсы, которые вам понадобятся для понимания, отладки и решения таких проблем в целом. (Когда-нибудь я напишу сокращенную статью)

Инструменты, которые необходимо знать для решения проблем с утечкой памяти и узкими местами ЦП (все они доступны в инструментах разработчика браузера):
Наиболее распространенные типы утечек памяти:
- Непреднамеренные глобальные переменные
- Непроверенные таймеры или обратные вызовы
- Отдельные элементы DOM
- Закрытие
Вы можете прочитать об этих распространенных проблемах с утечкой памяти здесь, они подробно объяснены.
Решения, связанные с узкими местами основного потока (ЦП)
- Разделите длинные задачи (ваши и сторонние скрипты)
- Запускайте фрагменты кода в нужное время и в нужном месте
- Используйте веб-воркеров, чтобы освободить ваш основной поток (окончательный)
Требуются знания:
- Как работает процесс рендеринга в браузере
- Javascript Цикл событий и Обещания
- Javascript Сборка мусора
- "Инструменты разработчика"
Заключение
JavaScript - это круто. Используйте его силу с умом. Когда-нибудь напишу лучшее заключение.
Спасибо за прочтение.
Больше контента на plainenglish.io