Як використовувати панель Memory для пошуку витоків пам'яті в JavaScript?

Відповідь

Витоки пам'яті в додатках на JavaScript можуть призводити до плавного зниження продуктивності, зависань і навіть повного падіння вкладки браузера. Для діагностики та пошуку таких проблем використовується вкладка Memory в інструментах розробника. Вона дозволяє робити знімки стану пам'яті в певні моменти часу і детально аналізувати об'єкти, які займають оперативну пам'ять і не видаляються збирачем сміття.

Основним інструментом для аналізу є знімок купи, який можна отримати, вибравши опцію Heap snapshot і натиснувши кнопку створення знімка. Рекомендується робити як мінімум два знімки для порівняння: перший у вихідному стані додатка, а другий після виконання певних користувацьких дій, які потенційно викликають витік, наприклад, відкриття і закриття модального вікна.

Після створення знімків ви можете переключити режим відображення з Summary на Comparison, щоб побачити різницю між станами пам'яті. Це дозволяє відфільтрувати об'єкти, які були створені і залишилися в пам'яті, але не були знищені після завершення операцій. Зверніть увагу на стовпець Delta, який показує приріст кількості об'єктів конкретного класу.

Клікнувши по підозрілому об'єкту, ви можете вивчити так звані шляхи утримання в нижній частині екрана. Граф шляхів показує, які саме посилання утримують об'єкт у пам'яті і не дають збирачу сміття очистити його. Знайшовши це кореневе посилання, ви зможете виправити код, видаливши непотрібні обробники подій або глобальні посилання, які блокують звільнення ресурсів.

Чи корисна ця відповідь?

Інші питання цієї теми

Пов’язані питання з інших тем