Как отследить и отладить утечки памяти JavaScript в Firefox? - PullRequest
16 голосов
/ 14 октября 2008

Я пытался отследить это буквально месяц безуспешно. У меня есть этот фрагмент кода на автомобильном рекламном веб-сайте, который в основном позволяет вращать миниатюры в результатах поиска, учитывая, что у автомобиля есть несколько изображений. Вы можете увидеть это в действии по следующему адресу:

http://www.abcavendre.com/4506691919/

Он построен на основе mootools 1.2 . Проблема заключается в том, что этот скрипт в Firefox 3 потребляет довольно большой объем памяти сверхурочно, когда страница заполнена этими вращающимися изображениями, такими как эта страница инвентаря:

http://www.abcavendre.com/Vitrine/Israel_Huttman/

Вы можете посмотреть исходный код скрипта здесь:

http://www.abcavendre.com/scripts/showcase_small.js

Есть идеи, что вызывает утечку памяти? Странно то, что этот код работает правильно под IE7.

Ответы [ 3 ]

8 голосов
/ 14 октября 2008

Отслеживать утечки памяти в Firefox можно с помощью Leak Monitor Addon . Он показывает утечки памяти javascript (включая extension-scripts).

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

0 голосов
/ 17 октября 2008

Обновление до MooTools 1.2.1, мы улучшили сборку мусора и обработку утечек.

0 голосов
/ 14 октября 2008

Попробуйте обнулить массив переменных элементов в конце функции инициализации

    ...

    if (ads.length > 0)
        {
        this.imagesFx = new Fx.Elements(elements,
            {
            wait: false,
            duration: 1000
            });
        this.moveNext.periodical(2500, this);
        }

    elements = null; //Add THIS!
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...