Как отслеживать и устранять утечки памяти JavaScript в Firefox?
-
03-07-2019 - |
Вопрос
Я пытался отследить это буквально месяц, но безуспешно.У меня есть фрагмент кода на веб-сайте, рекламирующем автомобили, который позволяет миниатюрам вращаться в результатах поиска, если у автомобиля есть несколько изображений.Вы можете увидеть это в действии по следующему адресу:
Он построен на Mootools 1.2 рамки.Проблема в том, что этот скрипт в Firefox 3 сверхурочно потребляет довольно большой объем памяти, когда страница заполнена вращающимися изображениями, как, например, эта страница инвентаризации:
Вы можете увидеть источник рассматриваемого сценария здесь:
Есть идеи относительно того, что вызывает утечку памяти?Странно то, что этот код работает правильно в IE7.
Решение
Способ отслеживания утечек памяти в Firefox — с помощью Аддон для мониторинга утечек.Он показывает утечки памяти в javascript (включая сценарии расширений).
Напоминаем, что плагин иногда отображает утекшие объекты, которые позже будут очищены при сборке мусора.В этом случае плагин запустит новое окно, показывающее новый статус.
Другие советы
В обновлении MooTools 1.2.1 мы улучшили сбор мусора и обработку утечек.
Попробуйте обнулить массив переменных элементов в конце функции инициализации.
...
if (ads.length > 0)
{
this.imagesFx = new Fx.Elements(elements,
{
wait: false,
duration: 1000
});
this.moveNext.periodical(2500, this);
}
elements = null; //Add THIS!
}