nixp.ru v3.0

28 мая 2017,
воскресенье,
07:40:25 MSK

DevOps с компанией «Флант»
4 апреля 2011, 12:16

В Mozilla обеспокоились производительностью дополнений для Firefox

2
Фрагмента топа медлительных дополнений
Фрагмента топа медлительных дополнений
Иллюстрация с сайта Addons.Mozilla.Org

В блоге компании Mozilla, стоящей за Firefox, подняли тему производительности дополнений к этому популярному веб-браузеру с открытым кодом.

По подсчетам специалистов Mozilla, каждое дополнение в среднем увеличивает время запуска Firefox на 10%. Конечно, многие потребляют меньше ресурсов, но есть и обратные примеры. В результате, 10 установленных дополнений в Firefox, как правило, приводят к удваиванию времени запуска веб-браузера.

В десятке «лидеров» по увеличению времени запуска Firefox такие популярные дополнения, как Firebug (время увеличивается на 74%), FlashGot (50%), Video DownloadHelper (33%) и FastestFox (33%). Еженедельно обновляемый «рейтинг» публикуется на отдельной странице.

Среди инициатив, которые запустила Mozilla для борьбы с этой проблемой:

  1. Автоматизированное тестирование производительности, благодаря которому и стал доступен рейтинг наиболее медлительных дополнений.
  2. Уведомления о медлительности работы в галерее и менеджере дополнений (замечание будет выводиться для дополнений, установка которых увеличивает время запуска браузера на 25% и более).
  3. Обновленная документация по улучшению производительности при разработке дополнений.
  4. В ближайшие месяцы появится инструментарий для тестирования производительности дополнений по запросу от разработчиков.
  5. Введение дополнительного согласия от пользователей при установке различных панелей и других встраиваемых в браузер без вашего согласия дополнений.

Самим пользователям Firefox рекомендуется отключить неиспользуемые дополнения.

Постоянная ссылка к новости: https://www.nixp.ru/news/11080.html. Дмитрий Шурупов по материалам blog.mozilla.com.

fb twitter vk
Sladex

Но это же ни разу не решение проблемы :(

Дмитрий Шурупов

Я не в курсе, как там всё внутри устроено, но для меня главная загадка — почему, обратив такое пристальное внимание на проблему, все её «решения» сводятся к блужданию вокруг да около и борьбе с последствиями, а не причинами (даже не обозначены усилия разработчиков оптимизировать что-то внутри FF/системы дополнений). Неужели вся проблема действительно преимущественно сводится к «неопрятности» только программистов, создающих дополнения?

dfghm

Предполагаю, что это жесткий намек девелоперам дополнений на оптимизацию. А говорить, что Mozill’исты не работают над оптимизацией не стоит.

Это браузер, который в отличии от конкурентов, умеет отображать стили для option в select списке. Так что ребята работают по всем направлениям.

Единственный прямой конкурент этому браузеру — Google Chrome. Но его еще нужно пилять и пилять, так как Googl’исты гоняются за скоростью.

yesint

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

rgo

Не знаю как у вас, но у меня мозилла, когда работает недели две без перезапуска, начинает просто безбожно тормозить. Кроме того, с нефиг делать, я запустил boinc, и несколько раздражает, когда неиспользуемый файрфокс стабильно отжирает 1% cpu time. Мелочь, конечно, но раздражает, и поэтому теперь я убиваю ff каждый раз, когда в нём отпадает надобность. Но на его перезапусках, по-моему, я теряю больше времени.

А оптимизировать, я уверен, там есть что. mozilla втянулась в гонку за звание владельца самого производительноого движка js и dom, и даже достигли определённых, весьма ощутимых успехов на этом поприще. А аддоны, которые все целиком написаны на js продолжают тормозить.

yesint

Честно говоря не проверял по две недели. Если тормозить начинает, это утечки памяти и если они в аддонах, то это повод дать их авторам по башке.

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

Hubbitus

при чем здесь авторы аддонов?? Они пишут на JavaScript, если Вы не забыли, там нету ни управления памятью, ничего подобного. Надо движок сделать так чтобы не текло. Они уже это трижды как анонсировали исправления, и вроде чуток лучше стало, но пока тоже вынужден согласиться, он жутко тормозной…

Применяю его только для разработки, для серфинга только Хром.

dfghm

Ам… а Google Chrome для разработки не применяете? )

Hubbitus

Много раз пробовал… Пока не дотягивает до Firefox’a, как ни крути. Но с каждым днем приближается.

dfghm

Developer Tools да.

Попробуйте Firebug Lite for Google Chrome

В этом firebug есть все кроме Net panel

Hubbitus

Да пробовал, и лайт, и Гугловый FireBug расширение… Не удобные они, и юзабельны разве что в ИЕ, особенно старых, когда выходя другого нету :(

Там нету кучи вкосностей типа автодополнений, листаний свойств, автоподсказок, изменения значений (в т.ч. числовых и списочных) стрелками клавиатуры ну и много всяких других полезностей. На то оно и лайт…

yesint

Авторы причем. Если плагин каждый раз выделяет себе память и сконструирован через левую ногу так, что никогда ее не отдает, то это будет де-факто утечка. На языке без явного управления памятью можно тоже за милую душу написать подобную фигню :)

Hubbitus

> Авторы причем. Если плагин каждый раз выделяет себе память

Еще раз, для тех кто в танке: В JavaScript в принципе нету выделения памяти!!! Авторы этого не делают как бы не хотели. Выделение и освобождение (сборка мусора) делаются автоматически!

yesint

СпокойнЕе, Маня, вы не на работе (С)

Отвечаю из танка: плагин в цикле каждые 10 секунд добавляет к некому массиву элемент. Память выделяется автоматически, да, но выделяется. И если сделано через одно место, то массив растет себе и жрет все больше памяти. Это де-факто утечка, хотя формально таковой не является.

dfghm

Как понимаю под массивом, Вы имели ввиду ООП и создание, например, многократных копий класса а-ля:

var obj = new SomeClass();


:-D

Почему бы разработчикам расширений не пересмотреть свои взгляды на реализацию кода и оптимизацию его?

 

Hubbitus

Ну тут-то конечно невозможно не согласиться. Однако это не совсем утечки конечно, хотя размер занимаемой памяти конечно увеличивается, тут согласен. Другое дело что JavaScript так спроектирован чтобы этого не было. Нет, конечно при большом желании можно использоваь и глобальный массив и с какого-то перепугу яго постоянно дополнять чем-то… Но обычно переменные создаются в функциях, передаются и обрабатываются в замыканиях и коллбеках, такми образом выходя из области видимости их память автоматически освобождается…

Скажите, Вы серезно считаете что разработчики расширений под Хром и ту же Оперу другие, все как один более квалифицированные, аккуратные и т.д. и т.п.??

yesint

Понятия не имею т.к. не использую ни хром ни оперу. Если на то пошло, то расширений я тоже не пишу и высказался чисто теоретически — как бы хорош ни был язык, все равно можно написать на нем неэффективную фигню :)

Ameise

У меня используются постоянно только Adblock Plus, DownloadHelper, Download Statusbar и Noscript ( Web Developer + валидаторы от случая к случаю). Катастрофического падения скорости загрузки не замечаю. Больше беспокоит общая производительность при большом количестве открытых страниц > 40.

P.s. Firefox 3.6.16 Ubuntu 10.10 ( четвёрку не пробовал ещё, жду когда избавят дополнения от «детских болезней»).

dfghm

С kernel 2.6.38 (в natty) количество страниц не сказывается на реакции. Но проявляются артефакты при flash анимации и пр. (в FF4).

На данный момент установленные Firebug 1.7.0 и Awesome Screenshot 2.1.

Запуск и открытие Google менее секунды (не холодный).

Diafour

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