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

Недавно, работая над ezCreatives, я столкнулся с одной такой проблемой.

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

Инструменты, которые необходимо знать для решения проблем с утечкой памяти и узкими местами ЦП (все они доступны в инструментах разработчика браузера):

  1. Перформанс раздел
  2. Память раздел
  3. Маяк Аудит

Наиболее распространенные типы утечек памяти:

  1. Непреднамеренные глобальные переменные
  2. Непроверенные таймеры или обратные вызовы
  3. Отдельные элементы DOM
  4. Закрытие

Вы можете прочитать об этих распространенных проблемах с утечкой памяти здесь, они подробно объяснены.

Решения, связанные с узкими местами основного потока (ЦП)

  1. Разделите длинные задачи (ваши и сторонние скрипты)
  2. Запускайте фрагменты кода в нужное время и в нужном месте
  3. Используйте веб-воркеров, чтобы освободить ваш основной поток (окончательный)

Требуются знания:

  1. Как работает процесс рендеринга в браузере
  2. Javascript Цикл событий и Обещания
  3. Javascript Сборка мусора
  4. "Инструменты разработчика"

Заключение

JavaScript - это круто. Используйте его силу с умом. Когда-нибудь напишу лучшее заключение.

Спасибо за прочтение.

Больше контента на plainenglish.io