Разработчики Mozilla объявили (http://benjamin.smedbergs.us/blog/2009-12-15/multi-process-p.../) о добавлении в тестовую ветку mozilla-central поддержки технологии полностью изолированного выполнения плагинов, работа которых осуществляется в рамках отдельных процессов и не влияет на стабильность функционирования основного браузера. Данная возможность является первым шагом на пути к переводу Firefox на многопроцессную архитектуру (http://www.opennet.me/opennews/art.shtml?num=21619), развиваемую в рамках проекта "Электролиз".
Ещё в июне этого года разработчики Mozilla Firefox объявили (http://benjamin.smedbergs.us/blog/2009-06-16/electrolysis-ma.../) о начале работ над новым суб-проектом Electrolysis (электролиз), суть которого заключается в том, чтобы улучшить Mozilla Firefox с помощью использования множества раздельных процессов для отображения веб-страниц. Такой подход обеспечит приложению следующие преимущества:...
URL: http://benjamin.smedbergs.us/blog/2009-12-15/multi-process-p.../
Новость: http://www.opennet.me/opennews/art.shtml?num=24689
Можно конечно бы было попробывать, но опять половина плагинов отвалится =(
А начинание отличное, да
с nspluginwrapper не отваливаются, а с мозиловским врапером будет отваливаться?
не путайте plugins с extensions.
плагины это например флеш, багрепортами которого и завалена мозила
>не путайте plugins с extensionsИ как тогда их перевести? Расширения? Или addons - дополнения? Уже все привыкли к названию "плагины"
Кто вам сказал, что все привыкли? Все, кого я знаю, говорят "расширения".
> Кто вам сказал, что все привыкли? Все, кого я знаю, говорят "расширения".Наверно все, кого Вы знаете, занимаются разработкой расширений.
>Можно конечно бы было попробывать, но опять половина плагинов отвалится =(попробовать
ура, новый виток истории: от потоков к процессам ! :) fork форева !
Виндузятники застрелятся а те которые выживут убегут на линух, посмотрев насколько там все быстрее и памяти жрет меньше (особенно когда еще и мерж одинаковых страниц памяти прикрутят) :).Вот так то наступит однажды вендекапец - браузер станет основной программой и в винде она будет работать хуже :). Остается только вопрос: а будем ли мы рады этому? Особенно красавцам типа гугля, сливающим во все стороны наши конфиденциальные данные.
>Виндузятники застрелятся а те которые выживут убегут на линух, посмотрев насколько там
>все быстрее и памяти жрет меньше (особенно когда еще и мерж
>одинаковых страниц памяти прикрутят) :).
>
>Вот так то наступит однажды вендекапец - браузер станет основной программой и
>в винде она будет работать хуже :). Остается только вопрос: а
>будем ли мы рады этому? Особенно красавцам типа гугля, сливающим
>во все стороны наши конфиденциальные данные.Тут где то пробегали тесты, Win32 FF под Wine работает быстрее чем нативный Линуксовый. И врятли ситуация изменится.
Зато гугель хром вроде как ровно наоборот. А мир захватывать вроде гугл собирался все-таки :). И с мозиллой пожалуй изменится - если они приделают разные части браузера в разных процессах. У пинвгином с этим получше а если еще same page merging прикрутить а винды еще и тормознутся кучей неуклюжих фаеров и антивирусов, можно представить результат...
Назад в прошлое? :-)
Казалось, время "многопроцессной архитектуры" ушло в прошлое, и пришло время многопоточности... Ан нет!
Идея данной технологии, безусловно интересная и полезная, только ведь, история развивается по спирали. Представляю анонс ФФ версии 10.х.у:
"... Текущий релиз был наконец-то целиком переведен на работу в режиме многопоточности. Отмечен существенный рост производительности...".
Тут речь о совершенно разных вещах. Политика изолирования исполняемых потоков кода в разных процессах преследует одну единственную цель, - защиту от сбоев. Это как хадуп кластеры, или просто фолт-толлерантные системы: система в целом продолжает функционировать, выдерживая N-1 сбоев, где N кол-во дублирующих компонент.На самом деле разнести приложение на разные процессы идея хорошая:
1. Сетевая часть в одном единственном процессе (многопоточном).
2. Визуализацию в один единственный для всех процесс (многопоточный). Визуализация должна быть лёгкой, очень лёгкой, - просто отображение отрендереных данных.
3. Парсинг HTML и JS отдельно для каждого сайта. И тут можно разные страницы сайта в разных потоках парсить. Если где-то бяка, то свалится только один процесс.
4. Рендеринг тоже для каждого сайта отдельно. Та-же байда.
5. Плагины соответственно в отдельных процессах не нужны. Одного процесса для всех плагинов достаточно. Нужна изоляция на уровне API. Как для AddOn-ов в WoW.
>5. Плагины соответственно в отдельных процессах не нужны.Поправлю.
Как раз это разработчики и делают:
>полностью изолированного выполнения плагинов, работа которых осуществляется в рамках отдельных процессов
здесь наверно имели в виду дополнения
хотя может и нет )
> Тут речь о совершенно разных вещах...Дык это... Я не спорю, что это, в принципе, здорово! Как я писал, идея понравилась, добавлю, что ессно, поддерживаю сие начинание. :-)
Просто позабавило яркое подтверждение тезиса о развитии истории по спирали. Вот я и продолжил аналогию.
судя по материалу-фишка в том что один и тот же поток будет заниматся и JavaScript, и HTML, и GUI и прочим. просто таких процессов будет много!
>Назад в прошлое? :-)
>Казалось, время "многопроцессной архитектуры" ушло в прошлое, и пришло время многопоточности... Ан
>нет!
>Идея данной технологии, безусловно интересная и полезная, только ведь, история развивается по
>спирали. Представляю анонс ФФ версии 10.х.у:
>"... Текущий релиз был наконец-то целиком переведен на работу в режиме многопоточности.
>Отмечен существенный рост производительности...".Могу указать на один момент - многопоточное приложение писать сложнее, чем многопроцессное.
Поэтому для кого-то реализовать быструю и безопасную фичу легче реализовать в многопроцессном приложении.
А кто-то просто не осиляет)
Или осиляет, но за бОльший промежуток времени.
>Могу указать на один момент - многопоточное приложение писать сложнее, чем многопроцессное.Да нет, сложность написания и там и там одинаковая. Просто при использовании "многопроцессной" модели так и так придется пользоваться объектами синхронизации при обмене данными, по другому не получиться. А в многопоточном приложении, порой, возникает желание (и есть возможность) секономить и обратиться к переменной напрямую, чем многие злоупотребляют, вот и возникают порой трудноуловимые чудеса. Если же быть аккуратным и "следовать рекомендациям лучших собаководов" (С), то отнюдь не сложнее. Точнее, писать-то совсем не сложно, а вот заставить потом корректно работать... :-)
>Да нет, сложность написания и там и там одинаковая.+1
>Точнее, писать-то совсем не сложно, а вот заставить потом корректно работать... :-)
Ну синхронизация на стэке и бог в помощь :)
Именно поэтому, я перешёл в своё время на С++, операции на стэке облегчают жизнь и практически сводят к 0 необходимость отладки. Да можно наворотить проблем и тут. Немного других проблем, но тем не менее портящих жизнь. Панацеи от кривых рук просто нет. А С++ слегка помогает навести порядок в мыслях и коде ...
Отлично, как раз этого больше всего и не хватало. Ещё желательно, чтобы можно было для плагинов выставлять ограничения на потребляемые ресурсы.
Мозилловцам лавры хрома покоя не дают)
Я смотрю на это с точки зрения того, что перенимается правильный опыт и технологии.Или вы любитель изобретать колесо?
Либо IE8 и Safari 4, на выбор.
Сначала наделали кучу концептульно дырявых plugin'ов, потом делаем изолированное окружение для запуска (!!!) того, чему не доверяем.Например, и flash и JavaScript сильно повышают возможности атаки.
>Сначала наделали кучу концептульно дырявых plugin'ов, потом делаем изолированное окружение для запуска
>(!!!) того, чему не доверяем.
>
>Например, и flash и JavaScript сильно повышают возможности атаки.Ну так их можно не включать, если не доверяете
> Например, и flash и JavaScript сильно повышают возможности атаки.И дают море полезных возможностей.
P.S. noscript + flashblock
>> Например, и flash и JavaScript сильно повышают возможности атаки.
> И дают море полезных возможностей.
> P.S. noscript + flashblockКак-то не очень логично: сначала "море полезных возможностей" а потом тут же noscript + flashblock. Т.е. всё же есть подозрение, что "море полезных возможностей" не только для сидящего по эту сторону экрана?
Чего нелогичного. Если вы не находитесь в зоне повышенного риска (или у вас период обострения паранойи) — noscript + flashblock. В остальное время используем полезные возможности.Философское отступление: ...мир, понимаете ли, плохо соответствует правилам бинарной логики, здесь очень редко уместно «или - или» (такие вопросы хорошо задавать только уперев ствол парабеллума в лоб врага). Здесь работает «и... и...»...
Можно делать полезные вещи, можно вредные. Noscript помогает разрешать пользу и запрещать вред
> Можно делать полезные вещи, можно вредные. Noscript помогает разрешать пользу и запрещать вредНу прям как антивирус какой-то! ;-)
Давно пора!!! И чтоб можно было безболезненно их отстреливать.
ФФ больше не будет зависать из-за флеша и pdf? Ура!
а что, есть люди, которые сморят PDF через FF? е-мае, куда я попал!
такс, посчитаем: 15 вкладок по 40 мб каждая плюс диспетчер >= 600 Мб
"память сегодня стоит копейки" (tm)
слова shared memory тебе ни о чем не говорят ?
Ты еще наверно и расход памяти по virtual size меряешь ?
ты запусти хром и убедись сегодня, не дожидаясь тестовой сборки мазилы
А если Electrolysis включить на 3.6b4 (dom.ipc.plugins.enabled на true) ничего плохого не будет?
plugins - можно.
tabs - нельзя. иначе http://www.mozilla.com/en-US/firefox/releases/fix-extensions...
Да таки похоже что мозилла осознала что таит в себе хром ... наконец то!
Пущаю мозилу и вижу, в topPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ P COMMAND
5143 pavel 20 0 872m 210m 36m S 11.0 5.2 2:44.16 1 /usr/lib64/firefox/firefox
5146 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.79 3 /usr/lib64/firefox/firefox
5147 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.32 1 /usr/lib64/firefox/firefox
5151 pavel 20 0 872m 210m 36m S 0.2 5.2 0:09.18 1 /usr/lib64/firefox/firefox
5155 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.46 3 /usr/lib64/firefox/firefox
5156 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.23 2 /usr/lib64/firefox/firefox
5166 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.25 1 /usr/lib64/firefox/firefox
5195 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.28 1 /usr/lib64/firefox/firefox
7433 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.23 3 /usr/lib64/firefox/firefox
7435 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.23 2 /usr/lib64/firefox/firefox
7437 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.23 3 /usr/lib64/firefox/firefox
7439 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.23 2 /usr/lib64/firefox/firefox
7553 pavel 20 0 872m 210m 36m S 8.3 5.2 0:08.60 2 /usr/lib64/firefox/firefox
7554 pavel 20 0 872m 210m 36m R 11.5 5.2 0:09.71 3 /usr/lib64/firefox/firefox
7555 pavel 20 0 872m 210m 36m R 10.5 5.2 0:09.42 1 /usr/lib64/firefox/firefox
7556 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.23 3 /usr/lib64/firefox/firefox
7579 pavel 20 0 872m 210m 36m S 2.7 5.2 0:04.76 2 /usr/lib64/firefox/firefox
7589 pavel 20 0 872m 210m 36m S 0.2 5.2 0:00.79 0 /usr/lib64/firefox/firefox
7609 pavel 20 0 872m 210m 36m S 6.4 5.2 0:01.18 0 /usr/lib64/firefox/firefox
7610 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.23 1 /usr/lib64/firefox/firefox
7611 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.23 3 /usr/lib64/firefox/firefox
7612 pavel 20 0 872m 210m 36m S 0.0 5.2 0:00.23 1 /usr/lib64/firefox/firefox
64-некошерно, ты бы лучше на 32 запустил
Что-то FireFox все больше становится похож на неуправляемого монстра. Браузер вместо ОС? Cloud окружение для масс? Будущее настигает...
>Что-то FireFox все больше становится похож на неуправляемого монстраКогда кажется кретится надо.
> Браузер вместо ОС?
>Cloud окружение для масс? Будущее настигает...ДА
никогда бы не подумал что распиливание потоков на отдельные процессы приведет к росту производительности. проведите простой эксперимет-у себя в винде експлорер переведите в режим когда каждое окно будет работать в отдельном процессе, получите нефиговые тормоза
>никогда бы не подумал что распиливание потоков на отдельные процессы приведет к
>росту производительности. проведите простой эксперимет-у себя в винде експлорер переведите в
>режим когда каждое окно будет работать в отдельном процессе, получите нефиговые
>тормозаТак надо их по разным процам/ядрам разгонять!
>надо их по разным процам/ядрам разгонятьоставили бы привычный режим работы для несчастных обладателей <40-ядерников
Основная идея не в увеличении производительности, а в повышении надёжности.
>Основная идея не в увеличении производительности, а в повышении надёжности.код надо писать нормально и соответствующим инструментарием - тогда проблем не будет
жить нужно в раю - тогда проблем не будет