Разработчики Mozilla сообщили (https://mystor.github.io/fission-news-1.html) об успехах развития проекта Fission (https://wiki.mozilla.org/Project_Fission), в рамках которого предпринята попытка модернизации архитектуры Firefox для повышения защищённости браузера. По аналогии с изменениями (https://www.opennet.me/opennews/art.shtml?num=48956#isolation), предложенными летом прошлого года в Chrome, в Firefox планируется реализовать режим строгой изоляции сайтов, при котором страницы разных сайтов всегда размещаются в памяти разных процессов, в каждом из которых применяется свой sandbox. Разделение осуществляется не по вкладкам, а по доменам, что позволит дополнительно изолировать содержимое внешних скриптов и iframe-блоков.Проект развивается уже около года и в конце февраля достигнет состояния первого тестового выпуска (Milestone 1), в котором будет реализована возможность выноса выполнения содержимого iframe в отдельные процессы. В дальнейшем начнётся работа по адаптации подсистем Firefox для использования предложенной модернизированной архитектуры. В настоящее время Firefox запускает несколько процессов-обработчиков (от 1 до 7, в зависимости от настроек), каждый из которых обслуживает несколько вкладок, а также запускает (https://www.opennet.me/opennews/art.shtml?num=49061) отдельные процессы для WebExtension и интерфейса.
URL: https://mystor.github.io/fission-news-1.html
Новость: https://www.opennet.me/opennews/art.shtml?num=50106
Во почему у меня так логаеть.
До 7 процессоров на вкладки.
А у меня один, и то двупоточный.
Больше похоже не проблему индейцев.
Проблема индейцев только в том, что у них не было гранатомётов и гатлингов.
Оу, тебе придётся ещё страдать, и гораздо хуже. Mozilla параллелит всё, что можно параллелить. А что нельзя, они превращают в конвеер, в котором разные фазы выполняются разными потоками/ядрами. Это постепенно просачивается в файрфокс, и то что здесь они сделали -- это даже не к тому, чтобы повысить параллельность, это к тому, чтобы делить задачи по процессам немного иначе. Закон Мура всё, приказал долго жить. Чтобы продолжать наращивать вычислительные мощности, теперь будут наращивать количество вычислительных ядер. Возможно интегрировать GPU в CPU, так же как когда-то FPU интегрировали в CPU, стирать границу между GPU и CPU.А если забить ещё пару косяков, то может придти в голову идея стереть различия между софтварными pipeline'ами обработки данных, GPU'шными pipeline'ами, и CPU'шными ядрами/потоками/конвеерами. У меня -- увы -- травы недостаточно, чтобы представить что в результате может получиться. Там, я боюсь, никакого раста не хватит, придётся изобретать ещё более суперновый и суперреволюционный язык программирования, чтобы иметь хоть какие-то шансы освоить вновь открывающиеся вычислительные перспективы.
Но в любом случае, владельцы одноядерных машин будут страдать, и с каждым годом всё ужаснее и невыносимее, потому что накладные расходы на софтварное переключение потоков будут выжирать всё больше и больше их процессорных тактов, вплоть до момента, когда их процессор будет 100% времени заниматься переключением контекстов выполнения и у него не останется времени ни на что иное.
> У меня -- увы -- травы недостаточно, чтобы представить что в результате может получиться.OpenCL?
OpenMP 5.0?
Какие нафг OpenCL или OpenMP вы что больные кушаете на завтрак?Там тормозит ___ J a v a S c r i p t ___
Javascript это всего лишь язык. Он выполняет на некий код, на котором тормозит. Тормозит потому, что не хватает процессорной мощности конкретного ядра для этого тяжелого кода. Вот можно через OpenMP распараллелить обработку и раскидать по нескольким ядрам, и тормозить не будет. Или выгрузить на видяху через OpenCL, опять же процессор разгрузится. Что не так-то?
Он однопоточный.
> Он однопоточный.Web workers для кого изобрели?
А ещё в нём есть асинхронность, что уменьшает нужду в потоках. Не судите понятиями других языков.
> А ещё в нём есть асинхронность, что уменьшает нужду в потоках. Не
> судите понятиями других языков.Вы точно прочли комментарий, на который я отвечал? Там фантазии про загрузку всех процессорных ядер, OpenMP, OpenCL... Эх, теоретики...
В браузере может и да. В остальных случаях на многоядерной машине вы будете гонять однопоточный код на одном ядре. Смысл тогда в ядрах если не используется параллельность, неизвестно.
Язык не определяет потоковую модель, яваскрип не исключение (он и многопоточный и однопоточный в зависимости от среды). За исключением какого нибудь Golang в который это вшито.
JavaScript тормозит потому что динамическая типизация. Сложно оптимизировать JITом.
Вообще-то JS не тормозит. В контексте веба, точнее. Тормозит DOM, это узкое горлышко.
> Там тормозит ___ J a v a S c r i p t ___В интерфейсе браузера? Пруфы давай.
Вот в ранних версиях там тоже ui был js, но как вы любите писать трава была зеленее (все было ок)
Да, прошли те времена, когда я на одном ядре спокойно держал фф на 1300 табов
Ппц, никогда не поверю
ветка 2.3 вполне на многое была способна. хотя по ощущениям опера тогда чуть шустрее работала.
Это была ветка 3.х
> Это была ветка 3.хТрэш. Что на этих табах было? Хеллоу ворлд? У некоторых оно выжирало всю память на 20 табах))
Вы что, прон одновременно в 20 табах смотрите что ли? Да у меня сейчас гораздо более 20 табов, и живет как-то.
Да, был период, когда опера была лучше
> хотя по ощущениям опера тогда чуть шустрее работала.опера - это вообще кусок, который почему-то "русское сообщество" любит. Больше он нигде не ценится.
Да мне все равно, я то знаю. Это не вопрос веры. У кого-то и больше табов было.
Что-то мне подсказывает, что в те времена не было страницы были намного проще
Кто мешает зайти в настройки и поставить 1 процесс?
код фуфлофоксы мешает, который на одном процессоре, внезапно, после всех улучшизмов и переписываний на хруст, начал работать заметно медленнее (вероятно из-за того что при 1 не отключаются танцы вокруг локов и прочие потери на псевдо-параллелизм)так что расслабьтесь - будущее не за openmp, а за кластером из умных холодильников и тостеров (все равно стоят) на которые и будет распределяться рендеринг страницы.
7 процессоров - это, конечно, много. Надо бы ему видеокарту скормить еще.
Установите в about:config параметр browser.tabs.remote.autostart = false и перезапустите.
Будет как раньше на всё один процесс.
Установите в about:config параметр browser.tabs.remote.autostart = -1
и будет один процесс на каждую вкладку как в хроме
Вот только при этом не тянет фф много табов, регулярно крешится при старте или после.
Вот почему у меня на четырёхьидрёном процессоре ни палучается 15 патокав, ну вот пачиму?
Как же теперь вк будет уведомлениями моргать?..
> Как же теперь вк будет уведомлениями моргать?..На гугль уповаем:
...сделает стандарт на уведомительный светодиод для настоль-PC для файерфокса. </нет>
Азбукой Морзе на светодиоде роутера
А что ему помешает? Сейчас он как это делает?
Ныне для этой задачи есть сервис-воркеры. Можно уведомления показывать даже тогда, когда сайт у юзера не открыт, если юзер подписался. А можно делать по старинке, в самой вкладке.
То есть теперь он будет жрать память и ресурсы процессора как хром, или даже больше?
оно ж уже?
> оно ж уже?они совершенствуют, а совершенству нет предела.
У меня нет. Хромиум на 3 гигах ОЗУ и Intel GMA забивает всю память уже на 4-5 вкладках, при попытке воспроизвести видео чаще всего зависает. Возможно, нужно включить софтовый декодинг, но я просто открываю Фаерфокс и все прекрасно работает.
В FF часто открыто 150+ вкладок, висящих по многу дней (не после восстановления сессии).
i5-4570, 8G памяти (рабочая машина). Переодически "закрываю все вкладки справа", и начинаю снова.
Ничего не тормозит.
Ну а что Вы хотите, накладные расходы ядра на «обслуживание» процесса, как единицы выполняемых инструкций на процессоре, не могут равняться нулю. Говорят потоки отнимают меньше ресурсов (сам сомневаюсь по незнанию), но там похоже с изоляцией дело плохо.Но Вы не огорчайтесь, прогресс не стоит на месте. Да и Вы сами можете поспособствовать развитию. Например если изучите данный вопрос досконально, и, хотя бы дадите свои авторитетные рекомендации на ресурсах которые используют для общения люди наиболее приближенные к разработке ядра (ну, или сами подключайтесь к разработке ;)!
В случае браузера потоки отнимают радикально меньше ресурсов, и именно за счёт изоляции - один общий JIT чего стоит. Нужда в настолько надёжной изоляции лично мне не очевидна ни разу, так что я со своими сотнями вкладок просто сбежал на Pale Moon пару-тройку лет назад, и назад не собираюсь.
PaleMoon это хорошо, но по факту приходится держать и ФФ, поскольку некоторые вещи PaleMoon не мог нормально отображать, не работало нихрена (буквально несколько историй таких, надо бы проверить, может уже починили). Плюс расширения.
Большую часть починили, по крайней мере я давно не бился о подобное. А раньше - да, регулярно было. У меня, правда, на такие случаи был seamonkey - тоже древний, но обычно либо в одном, либо во втором окрывалось. Собственно, он и сейчас есть - в роли почтовика.
> (буквально несколько историй таких, надо бы проверить, может уже починили). Плюс расширения.Не успевают чинить за ломателями:
https://github.com/groovytron/maracker/commit/2684d9e72b10d2...
не грузится даже в дефолтном профиле, без блокировщиков и прочего.
Ну и та же менюшка для выбора бранча тоже теперь поломана.
Непонятно только, зачем им 700KБ ЖС-фреймворков и 600 КБ CSS, если работает оно только в двух браузерных движках.
в трех - в йоже еще работает (то есть бранчи выбираются). Как (и чего ради) можно ухитриться сделать банальный селектор неработающим в чем-то посовременней lynx - ну да, вопрос к макакам.по этой ссылке вопросов нет - там крутится нескучная анимация, а про код под ней, на самом деле подгружающий страницу, как-то второпях забили.
>Разделение осуществляется не по вкладкам, а по доменам, что позволит дополнительно изолировать содержимое внешних скриптов и iframe-блоков.Я считаю, что это единственно правильный способ изолировать ресурсы. Все равно для каждого домена они разные, а вот если открыть пару вкладок одного домена, то очень правильно, что они используют те же жс и цсс файлы, а не копируют их для каждой вкладки. Полностью поддерживаю
С сайтами висящими на одном домене... Да и вообще в целом это похоже на замечательный вектор для атак. Нужно и по вкладкам и по доменам тогда, но где ж столько памяти взять.
Теперь только осталось Firefox на эрланге переписать и вообще будет класс. Вот интересно если такому браузеру подкинуть страничку с овер-дохера iframe как быстро он самовыпилится или положит систему?
Ну я думаю они быстро додумаются до шаринга процессов, и все вернется на круги своя.P.S. А зачем делать, если и так полно людей с овер1к открытых вкладок. У меня есть знакомые, которым, по моим наблюдениям, гораздо проще открыть еще одну вкладку, чем найти или удалить старую. И ничего - пользуются же они Хромом.
> Вот интересно если такому браузеру подкинуть страничку с овер-дохера iframe как быстро он самовыпилится или положит систему?Ньюфаг, это и в старых браузерах проблемой было, с одним процессом. Были даже специальные тестовые страницы с сотнями фреймов, и браузер с AdblockPlus умирал особенно хорошо.
Только раньше однопроцессный браузер целиком лагал, фризился или крашился от плохой вкладки. А теперь лагает, фризится или крашится вкладка, а браузер живой, т.к. отдельные процессы.
> в рамках которого предпринята попытка модернизации архитектуры Firefox для повышения защищённости браузера.Характерно, что там не идёт речь о переписывании соответствующих частей на ржавчине.
> Характерно, что там не идёт речь о переписывании соответствующих частей на ржавчине.это рутинный процесс, зачем о нем отдельно говорить?
Так они же совсем недавно весь браузер переписали - что, архитектура уже устарела за 10 релизов?
Переписали только небольшие кусочки. И продолжают переписывать. Это работа на несколько лет.
Тысячелетий.
> Тысячелетий.если продолжать переписывать уже переписанное - вам и на несколько эонов хватит, я знаю.
Угу, приехали. То есть теперь у нас 1 вкладка = 1 процесс. И чем мы теперь так принципиально отличаемся от uzbl, интересно... Разве что аддонов побольше, это-то конечно радует...
> И чем мы теперь так принципиально отличаемся от uzblТем что Firefox живой
Да, без Firefox один Chrome останется...
А в ночной сборке так и должно быть, что не отображаются строки в about.config?(ps: если ввести название строки то поиск находит)
Проверял в firefox-67.0a1.
> А в ночной сборке так и должно быть, что не отображаются строки
> в about.config?
> (ps: если ввести название строки то поиск находит)
> Проверял в firefox-67.0a1.Нажми Esc. Новый about:config то ещё деpьмище.
https://www.ghacks.net/2019/01/31/firefoxs-new-aboutconfig-page/
640 гигабайт и 64 ядра хватит для всех.
64 ядра уже доступны. 640 Гигов это 5Килобаксов. Не, не надо такого счастья.
Это была отсылка к высказыванию одного очень известного разработчика, впоследствии ставшего самым богатым человеком в мире
> Разделение осуществляется не по вкладкам, а по доменамАга, привет google turbopages (atm, или как его там?).
>atmДля гугла вполне.
То есть сколько доменов, столько будет и процессов висеть?
Очень интересно что же ещё эти "гении" из Мозиллы придумают
Нам нужна новая архитектура процессоров и пара-тройка ЯП. Остальное КЕМ!
Последнее время FireFox не радует - тормозит, лагает... Все эти улучшения - не в коня корм. Перешел на Pale Moon.
Редактировать куки запретят или нет?
на сайт Мозилы данные пользователя теперь с каждого домена будут отдельным потоком литься? :)