Как я могу постараться не вызывать утечки памяти в Firefox?

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

Кроме того, если бы кто-либо знает о каких-либо инструментах для поиска и устранения неисправностей утечек в FF, который был бы большим. Я нашел это: https://addons.mozilla.org/en-US/firefox/addon/2490/, Но это, по-видимому, только для хрома и дополнительной разработки.

5
задан mrdanimal 20 May 2010 в 17:12
поделиться

4 ответа

Вне шаблонов проектирования единственный действительно безопасный способ - это протестировать вашу страницы тщательно. Контролировать использование памяти в диспетчере задач браузера можно, но Process Explorer дает более точные результаты.

JavaScript - одна из причин утечки памяти, но будьте осторожны и с флеш-роликами на страницах. Наша команда по контенту добавила фильм из нашего отдела дизайна, в котором использовался эффект перехода с третьей стороны, и он проглатывал 10 МБ каждые 20 секунд или около того. Просто просматривая цикл фильма, в TaskManager было очевидно, что при возникновении аффекта происходит скачок памяти, и он никогда не освобождает его полностью.

3
ответ дан 14 December 2019 в 08:44
поделиться

Я не знаю, есть ли конкретная информация для Firefox, но общие советы все равно применимы.

Я советую внимательно изучить все циклы и рекурсивные функции. Повторно используйте существующие объекты вместо создания новых, и убедитесь, что временные объекты и примитивы выходят из области видимости, чтобы их можно было освободить.

0
ответ дан 14 December 2019 в 08:44
поделиться

Вы можете принудительно запустить сборщик мусора в FireFox. Garbadge Collector будет уничтожать и выпускать объекты, которые больше не используются. Единственная возможность «утечки памяти» с помощью сборщика мусора — это не «утечка», а ссылка, которая не имеет смысла: удалите все ссылки на объекты, которые вы не хотите использовать.

Подробнее читайте на этой странице:
http://adblockplus.org/blog/different-ways-to-force-garbage-collection

2
ответ дан 14 December 2019 в 08:44
поделиться

Много из того, что вы читаете о том, как избежать утечек памяти в браузерах, касается того, как избежать вещей, из-за которых браузер не может освободить память, которую он должен освободить.

Однако более существенная проблема во многих случаях связана с тем, что веб-страницы удерживают объекты, которые им больше не нужны. Задача браузера - вернуть вещи, которые больше не «достижимы», то есть вещи, до которых скрипт / страница больше не могут добраться. Если вы накапливаете объекты в массиве и не удаляете их, когда закончите с ними, использование памяти будет расти по мере увеличения массива, и браузер ничего не может с этим поделать.

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

2
ответ дан 14 December 2019 в 08:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: