В ночных сборках (http://nightly.mozilla.org/) Firefox, которые лягут в основу выпуска Firefox 52, реализована (https://mail.mozilla.org/pipermail/firefox-dev/2016-November...) возможность обработки контента в разных процессах и началась интеграция наработок из проекта Quantum (https://www.opennet.me/opennews/art.shtml?num=45385), в котором производится работа по переносу в движок Gecko возможностей, изначально развиваемых для движка Servo.Если ранее при включении многопроцессного режима осуществлялось разделение на два процесса - один для обработки содержимого вкладок и один для формирования интерфейса, то в ночных сборках появилась (https://mail.mozilla.org/pipermail/firefox-dev/2016-November...) возможность запуска нескольких процессов для обработки контента (число запускаемых процессов для обработки контента задаётся через переменную dom.ipc.processCount в about:config). Подобный подход позволяет (https://www.opennet.me/opennews/art.shtml?num=44564) обеспечить дополнительную изоляцию обработчиков, повысить надёжность (крах одной вкладки не приведёт к закрытию всех остальных вкладок), повысить эффективность использования ресурсов многоядерных процессоров (разнесение нагрузки на все ядра), уменьшить фрагментацию памяти при длительной работе браузера.
В состав ночных сборок также приняты (https://bugzilla.mozilla.org/show_bug.cgi?id=1314133) изменения, подготовленные проектом Quantum Compositor (https://bugzilla.mozilla.org/show_bug.cgi?id=1264543) (e10s-gpu), в рамках которого в отдельный процесс дополнительно вынесен код композитинга и интерфейса для взаимодействия с GPU, что позволит защитить браузер от проблем, возникающих из-за графических драйверов и сбоев в графическом API. Quantum Compositor по умолчанию пока включен (layers.gpu-process.dev.enabled в about:config) только на платформе Windows при наличии Direct3D 11. В случае сбоя в D3D11, процесс композитинга автоматически перезапускается без негативного влияния на работу остальных частей браузера.
URL: https://www.soeren-hentzschel.at/firefox/next-generation-eng.../
Новость: http://www.opennet.me/opennews/art.shtml?num=45480
Пора надрать зад Google Chrome и отвоевать свои 70%.
Где-то я это уже слышал. Кажется это был Firefox OS.
Ты так не шути. Никто не ждал на полном серьезе от Firefox новой революционной ОС. Никто не ждал, что она кого-то там где-то потеснит. Но на поле битвы браузеров есть все шансы снова занять доминирующее положение. Все в их руках.
> Ты так не шути. Никто не ждал на полном серьезе от Firefox
> новой революционной ОС.Это вы так признаетесь что мозилла страдала хней, осваивая бюджеты рекламодателей? :)
> Никто не ждал, что она кого-то там где-то потеснит. Но на поле битвы браузеров
> есть все шансы снова занять доминирующее положение. Все в их руках.Спасибо, я уже видел как безопасно работал этот их просмотрщий pdf на яваскрите. Не говоря о том что он браузер ставит раком на несколько минут если угораздило открыть жирный пдф. Какие у них шансы с такими подходами - думаю понятно. Эти сказочные дол.. не смогли даже отрезание себя в контейнеры в лине запилить. А у хромообразных это уже лет пять как есть.
И вообще, мозилла которая огораживает экосистему подписями и вгружает EME-блобы - ничем не лучше гуглохрома.
Я тебе больше скажу, на не слабой машине одна вкладка ставила хром раком ;)
У меня uBlock все вкладки хрома "упсает", потом пока браузер не перезапустишь не встаёт. АдБлок то-же самое, - это от работы с памятью. ОЗУ 8ГБ.
У меня x64 Chrome замечательно работает с моими 4gb памяти, ЧЯДНТ?
Хорошо у вас там в будущем со 128-битными процессорами, только что-то памяти у вас там маловато.
Ты что?! Наоборот! Таки в будущем взялись за оптимизацию так, что и 4GB хватает :)
> У меня x64 Chrome замечательно работает с моими 4gb памяти, ЧЯДНТ?вкладок больше одной открываешь? у меня хром на 30-50 вкладках отжирал 6-8 гигов
зы: стоит сказать что на неделе словил какой-то баг в фоксе и видимо закрытые вкладки не выгружались (и сессия побилась) - в результате эбаутмемори фокса говорил о 1к открытых табов при выжраных 10,5 гигах оперативы (по 70-0,1 метра на вкладку, больше всего было около 20-5 метров на вкладку)
Совсем забыл еще там ABP стоит.
Автоматический Ввод Резерва?
> У меня uBlock все вкладки хрома "упсает",Так ты небось браузеру внутренние коммуникации зарубил? Ты случайно не трогал специальный scope называемый behind-the-scene? :)
А какой из этого вывод? Машина с 512мб памяти не мощная.
Да эти долбозвоны не могут группировку вкладок родить, а контейнеры для них просто звезды недостижимые.
Наверное потому что у Firefox огромный груз совместимости и он не может просто так вот взять, и поменять внутреннее устройство браузера. Но они работают над этим.Firefox лучше других браузеров своей гибкостью. Многие расширения, которые влияют на интерфейс браузера, просто невозможны в Chrome и ему подобных.
Какие шансы? У FF есть огромная PR машина в виде Гугла и всех его сервисов?
> Какие шансы? У FF есть огромная PR машина в виде Гугла и всех его сервисов?У них есть толпа маркетологов и эффективных менеджеров. И стайка глупых виндово-макосных хипстеров вместо программистов.
А нафига нам революционные ОСи? Нам нужна удобная...
> нам ... Нам ...и имя мне -- легион. ©
>имя мнеТы бы своё имя с прописной литеры писал бы, легион блин...
>>имя мне
> Ты бы своё имя с прописной литеры писал бы, легион блин...Мы, Легион Второй,...
> А нафига нам революционные ОСи? Нам нужна удобная...Экий ты прагматик. Сейчас хипстеры тебя шапками закидают за то что ты луддит и не оценил их высе^W простите, творения.
Сомневаюсь. Они должны сделать браузер значительно быстрее хрома, но каким образом?
И даже если сделают, то инертные хомячки привязанные к гуглоаккам и сайтам (в т ч корпоративным), которые сейчас затачиваются исключительно под хром, никуда переезжать не станут.
Фок те свои первые 30% завоевывал 10 лет, а растерял за пару лет. Он никогда не был модны и с него сразу убежали все кто мог (но не я).
Примеры крупных корпораций, особенно не ИТ, ( хотя-бы российских ) будут? А то как-бы у многих корп. стандарт IE, и на хром с фф смотрят через призму "а работают ли в них ms сервисы" :)
> Сомневаюсь. Они должны сделать браузер значительно быстрее хрома, но каким образом?
> И даже если сделают, то инертные хомячки привязанные к гуглоаккам и сайтам
> (в т ч корпоративным), которые сейчас затачиваются исключительно под хром, никуда
> переезжать не станут.
> Фок те свои первые 30% завоевывал 10 лет, а растерял за пару
> лет. Он никогда не был модны и с него сразу убежали
> все кто мог (но не я).достаточно продолжать не (так сильно как хром) жрать память и своя ниша у фокса точно будет
а скорость "жаваскриптов и ко" у фокса достаточная для юзеров
Каким это образом можно надрать зад, опускаясь на уровень Хромого поделия, жрущего все ресурсы компьютера?
пора надрать зад руке кормящей, ага
А у них они когда-нибудь были? Вообще да ;) удачи им с этим делом, я как раз вчера вычистил все остатки их помоешного браузера и воткнул chromium ;D chromium --proxy-server="socks5://localhost:9050" %U
> и воткнул chromiumИ как, эм, воткнулось?
> chromium --proxy-server="socks5://localhost:9050" %UТипа, вот моя версия билда, порядок загружаемых любимых шрифтов, размеры экрана минус заголовок, хэш WebGL, HSTS-суперкексы и еще целая куча возможностей слить инфу https://github.com/gcarq/inox-patchset
но зато я в домике^W^W^W IPшник вы мой не увидите?
А никто не знает, когда в Firefox появятся контекстные контейнеры? Вроде в 50 обещали, не?
В 49 уже есть. about:config -> privacy.userContext поставить в true и перезапустить лису.
https://blog.mozilla.org/tanvi/2016/06/16/contextual-identit.../
Круто! Спс! А когда по умолчанию активируют?
Точно не известно. В 50-м по дефолту опция будет отключена.
Шикарно! Теперь можно громить интернеты. :)
А как ими управлять? Свои создавать, по умолчанию которые редактировать? У меня только 4 контейнера на выбор и всё. И никаких настроек больше. А судя по скринам, должны быть ещё настройки в той же вкладке меню, но у меня их нет.
А что это такое? Оно как-то помогает в безопасность и анонимность в сети?
> А что это такое? Оно как-то помогает в безопасность и анонимность в сети?Лол, у файрфокса не менее полусотни поводов слазить на свои сервера, не забыв слить локаль и точную версию ядра. И жирные баги в работе с куками много лет подряд. Приваси, говорите? Это скорее про inox browser какой-нибудь.
Хотелось бы прайваси конечно, но Firefox среди прочих браузеров для меня слишком удобен, чтобы менять его. Поставил HTTPS Everywhere и NoScript, хоть немножко защитился от охочих до моей инфы.
> защитился от охочих до моей инфы.Главное не забудь отключить в NoScript плюшку сливающую твой айпи на их сервер ;). Хотя я предпочел uBlock - он вроде бы играет честно и автор в пакостях не замечен (этот собссно есть и под хромообразных и под лисообразных).
> Главное не забудь отключить в NoScript плюшку сливающую твой айпи на их серверЭто хде такое место в моей ТОРе? Ми в панике.
> Это хде такое место в моей ТОРе? Ми в панике.Если это tor-browser, там может и отключено по дефолту. А в диком виде - в noscript в настройках ABE есть такая галочка - wan ip ∈ lan. Т.е. считать адрес WAN входящим в LAN и не давать на него браузеру лазить. Может иметь некий смысл для защиты дырявых роутеров от попыток браузера атаковать роутер в локалке.
И все бы ничего, но узнает WAN IP эта шляпа разумеется путем похода на свой сервер и спросив сервера что он видит как WAN IP. При этом сервак, очевидно, узнает WAN IP. Ну или в случае tor - айпишник exit node. Который нафиг не упало защищать и поэтому фича только лишний раз занимается с(т)укачеством.
> Приваси, говорите? Это скорее про inox browser какой-нибудь.Ага, зато если арчеводы пересоберут хром сами, то он, (как только, так разу) станет офигительно приватным!1
> Ага, зато если арчеводы пересоберут хром сами, то он, (как только, так
> разу) станет офигительно приватным!1А вот это зависит от уровня жеппорукости канпелирующего. Если тот применит inox patchset - то станет. А если как макака будет вступать и канпелировать - он получит то что получит.
> А вот это зависит от уровня жеппорукости канпелирующего. Если тот применит inox
> patchset - то станет.Мамой клянетесь?
Хотя одна уже категоричность, что "да, станет", вкупе с гордостью за банальное умение применить патч, как бы, намекают :)
> Мамой клянетесь?Клянусь описанием патчей :)
> Хотя одна уже категоричность, что "да, станет", вкупе с гордостью за банальное
> умение применить патч, как бы, намекают :)Для начала я вообще не арчевод. Так что наезд был без шансов с самого начала... :)
>> Мамой клянетесь?
> Клянусь описанием патчей :)Понятно.
>> Хотя одна уже категоричность, что "да, станет", вкупе с гордостью за банальное
>> умение применить патч, как бы, намекают :)
> Для начала я вообще не арчевод. Так что наезд был без шансов с самого начала... :)Да без разницы, кто вы. И никаких наездов не было ;)
Просто когда так категорично заявляют что достаточно вкатить патчи в софт c почти 15 млн. строками кода и все будет пучком ...
> Понятно.Ну а что, может проверить лично. На первый взгляд патчики делают что заявлено - распадлоидизируют браузер.
> Да без разницы, кто вы. И никаких наездов не было ;)
Я просто констатировал что такой вариант есть и даже работает. И несколько более радикально и эффективно чем убирание за мазилой в их кривом движке и стаей вебмакак которые в безопасности не смыслят вообще, но верят что сменя ЯП или какое там еще переставление кроватей их от чего-то спасет. Хотя там явно надо менять б-дей. И их "мамок" из отдела маркетинга.
> Просто когда так категорично заявляют что достаточно вкатить патчи в софт
> c почти 15 млн. строками кода и все будет пучком ...Ну разумеется, список знаний про internals такой штуки эволюционирует over time. Но для хромиума такое по крайней мере есть и имеет смысл. Поэтому те кто настроился распадлоидизировать себе браузер и не против засучить рукава, применить патчи и грамотно задать параметры конфигуру - могут и сделать себе относительно распадлоидизированнй браузер. А если сканпелировать как есть с параметрами по дефолту - толку ессно не будет.
Зачем закрывать дверь на ключ, если всё равно взломают?
> Лол, у файрфокса и гугла не менее полусотни поводов слазить на свои сервераИсправил, не благодари. Все то они хороши.
Контекстные контейнеры убивают сразу 2х зайцев.Первый заяц - секьюрность. Можно использовать контейнер для вконтакте и фэйсбука, а для обычного сёрфинга юзать другой контейнер. В итоге, сайты не смогут найти у тебя куки FB или VK, никаких следов, что ты там есть. И другие вариации.
Второй заяц - если есть несколько аккаунтов на одном сайте, то контейнеры очень облегчат жизнь.
Прекрасная фича. Как включить в FF 49? Когда будет включена по умолчанию?
Чуть выше написано
Спасибо! Вы сделали мой день! В плане хороших новостей)
Чем лучше профилей? Будет готово - посмотрим.
Тем, что у тебя контейнер может быть в каждой вкладке.А с профилями - это неудобно, разные окна, как минимум.
Наконец-то взялись за дело
Давно пора возвращать интернет в руки пользователей.
Потребители принципиально не могут себе вернуть то, что не создают.
> Потребители принципиально не могут себе вернуть то, что не создают.Ну, перехватить и примазаться у "создавателей" получилось вполне неплохо, не?
Хотя вроде было все
> The internet is just a passing fad
> Давно пора возвращать интернет в руки пользователей.Для начала мазила отобрала у пользователей руль по установке расширений. И теперь у них в своей экосистеме вообще монополия на решение что такое хорошо и что такое плохо. До такой наглости не докатился даже хром.
> До такой наглости не докатился даже хром.Они решили не разгребать свою помойку. Ждите когда гугл скажет - мы закрываем хром со всеми дополнениями и выкатываем "Принципиально новый" (c) браузер!
Кто смотрел исходники? Они переносят из Servo код на Rust'е или конвертируют в плюсы?
Они выносят Servo-код на Расте в отдельные библиотеки с Си-интерфейсом, и линкуются с ними из основного кода ФФ на плюсах.
Кстати, на Фре FF уже несколько выпусков тянет в зависимостях Rust.
> Кстати, на Фре FF уже несколько выпусков тянет в зависимостях Rust.Опционально. Я выключаю - долго компилировать.
> Опционально. Я выключаю - долго компилировать.Ничего, скоро сделают mandatory. Ты там clang уже хотел? И радовался скольким там версиям llvm в системе? Ну вот скоро тебе и ЯП с расово верным управлением памятью вкрячат.
"Будьте осторожны в своих желаниях - они выполняются!"
>> Опционально. Я выключаю - долго компилировать.
> Ты там clang уже хотел?Хотел и хочу один нормальный компилятор для системы и портов, а не вязанку одних и тех же "прутиков" с разными версиями.
> И радовался скольким там версиям llvm в системе?
Нет.
> Ну вот скоро тебе и ЯП с расово верным управлением памятью вкрячат.
Кстати, firefox-50.0 уже требует отдельно устанавливаемого clang 3.6 для своей компиляции - на FreeBSD 9.x и 10.x всё сложнее становится обновлять ПО.
(Сопровождение FreeBSD 9.3- и 10.2-RELEASE закончится 31 декабря с.г.; 10.3 ещё как-то пробарахтается до апреля 2018-го, и я не представляю как, если все ломанутся на Mesa/DRI3 12.x)> "Будьте осторожны в своих желаниях - они выполняются!"
Главное - чтобы правильно их поняли.
> Хотел и хочу один нормальный компилятор для системы и портов, а не
> вязанку одних и тех же "прутиков" с разными версиями.Так системный llvm/шланг вроде как раз об этом. А если ты хочешь быть инновационнее апстрима - поздравляю, в этот момент ты и становишься апстримом. И таки имеешь все шансы попрыгать по граблям.
> Кстати, firefox-50.0 уже требует отдельно устанавливаемого clang 3.6 для
> своей компиляции - на FreeBSD 9.x и 10.x всё сложнее становится обновлять ПО.Еще и 3.6? Походу счастья должно быть много.
> пробарахтается до апреля 2018-го, и я не представляю как, если все
> ломанутся на Mesa/DRI3 12.x)А что, в фре таки запортили свежие дрова из линя?
> Главное - чтобы правильно их поняли.
Знаешь анекдот про Василий Ивановича и золотую рыбку? :)
>> Хотел и хочу один нормальный компилятор для системы и портов, а не
>> вязанку одних и тех же "прутиков" с разными версиями.
> Так системный llvm/шланг вроде как раз об этом.Наивный. :)
>> Кстати, firefox-50.0 уже требует отдельно устанавливаемого clang 3.6 для
>> своей компиляции - на FreeBSD 9.x и 10.x всё сложнее становится обновлять ПО.
> Еще и 3.6? Походу счастья должно быть много.Походу да - у тех, кто на старье сидит и решился что-то обновить.
>> пробарахтается до апреля 2018-го, и я не представляю как, если все
>> ломанутся на Mesa/DRI3 12.x)
> А что, в фре таки запортили свежие дрова из линя?Давно ли Mesa стала линуксовым драйвером?
Когда это появится в бете? e10s в бете уже доволен, потрясающе доволен.
Ну в смысле включил и потрясающе доволен..
Включил? В авроре e10s уже по умолчанию включен.
Можно спросить, что я делаю не так?
http://itmag.es/a3po
Может он только для Windows, откуда D3D11 в GNU/Linux?
>только на платформе Windows при наличии Direct3D 11Все. теперь браузеры хотят еще и видюху как у игорей
Это де-факто стандарт в современных компьютерных системах. И не только домашних!
> Это де-факто стандарт в современных компьютерных системах. И не только домашних!хух, ну слава богу. А то уж подумал...
> Это де-факто стандарт в современных компьютерных системах. И не только домашних!У тебя и на сервее дирексткс? Палишься, оффиопичное.
Браузер на сервере? Серьезно? Палишься пока ты.
А нафига мощностям простаивать? Если 95% времени за компом я не играю, то чего бы не юзать мощности видюхи в благом деле?
Join SETI@Home
Сколько лет ждать пока это появится в Release? или хотя бы в Beta?
К концу 2017 года будет релиз.
Твой сарказм не оценил.
5 month
Обожаю лису. Иногда подлагивает на скриптах, чуть медленнее работа, относительно "хромых", но все попытки перейти на "хромых" заканчивались осознанием того, что, ну, никак, не "душевно"... В общем, что хотел сказать?
Я рад и побежал тестировать!
Quantium. Make Firefox great again!
Подожди меня, тоже побежал тестить!
"Душевно" - это SeaMonkey. Где вы увидели душевность в поделке агрессивных маркетологов я не представляю.
он просто юзает "Лучшее дополнения для Firefox" - Classic theme Restorer
> он просто юзает "Лучшее дополнения для Firefox" - Classic theme RestorerКстати,оно не нужно, когда используются древовидные вкладки.
У каждого свои критерии душевности, так ведь? Пусть я "неофит", нетскейп застал лишь наблюдателем в подгузниках, потом весь путь развитий и разветвлений прошёл мимо меня... Но я полюбил именно лису, начиная с тех первых версий, к которым я получил доступ. И мне радостно, когда в ней происходят хорошие начинания. И грустно - когда плохие. Но я жду. У меня тонна терпения и хочется верить, что доминирование маркетинга - временное явление. И у лисы всё будет хорошо.
Сейчас у них маркетинг уже сошел на нет. Нечего рекламировать. Достаточно запустить Firefox первый раз и увидеть тормоза, про которые хромоюзеры даже не подозревают, что они могут существовать в вебе. В общем, даже новый интерфейс FF не помог, они и затихли.Вангую новый виток маркетинговых выкриков после того как Servo будет допилен. Ну или производительность Gecko с кусками кода Servo поднимется на достаточном уровне, чтобы не были заметны тормоза.
Извините, лисий движок истошно тормозит при малейших попытках тыкать его палочкой. А хром что, он работает, многопроцессность там много лет, в линухе он эффективно урезает себя в контейнер где в случае взлома браузера - брать нечего. И поэтому не будет как у лисы с их 0day в "безопасном" JS, когдя ремотные яваскриптики сканили весь винч на предмет "чем бы поживиться" - в хроме поживиться толком нечем. Доступа нет. Поэтому гугл и платит максимальную премию только за обход ВСЕХ уровней защиты.
> в линухе он эффективно урезает себя в контейнер где в случае взлома браузера - брать нечего.Наивный чукотский мальчик :)
Firejail спасёт отца русской демократии.
>началась интеграция наработок из проекта Quantum, в котором производится работа по переносу в движок Gecko возможностей, изначально развиваемых для движка ServoПереливание из пустого в порожнее.
Нам очень нехватало твоего мнения. Пиши исчо.
Тот неловкий момент когда вспоминаешь насколько хорош был ФФ 10 лет назад, и насколько медленными и прожорливыми стали браузеры сейчас, а единственный нормальный браузер не считая маргинальных это MS Edge.
> Тот неловкий момент когда вспоминаешь насколько хорош был ФФ 10 лет назад,По крайней мере тогда он был лучше конкурентов. Отдадим должное стратежности гугла - они поняли что мозилла идет в сторону регресса и толпы глупых хипстеров.
> браузер не считая маргинальных это MS Edge.
А это вообще за браузер не считается. Нифига не умеет, дополнений по сути нет, поддержка стандартов лажовая. Зачем он такой?
> поддержка стандартов лажоваяВо, специалист. А можно список стандартов чего не поддерживает Edge?
> Во, специалист. А можно список стандартов чего не поддерживает Edge?caniuse.com тебе в помощь, правда список с выборкой по именно эджу ты как-нибудь сам составь из его данных, если тебе надо, данные там есть.
Так толсто, что меня аж жиром снесло...
Почему толсто, я вот пишу это с FF, но объективно, по потреблению памяти, нагрузке на процессор, использованию аппаратных декодеров видео и распределение нагрузки на GPU, как итог скорости и удобству работы Edge очень сильно опережает как FF, так Хромого (который браузером считать вообще грех). Да и дополнения для него уже есть - AdBlock Plus, Pinterst, Evernote, Pocket. Большинству (среднестатистическому юзеру) этих расширений достаточно, а превосходство в плане качества работы очевидно. Что касается "поддержки стандартов", то хватит уже насиловать труп смешных мемчиков о IE7, даже в IE11 проблем, как таковых, не наблюдается, а сервисами Гугла он работает даже лучше Лисы, при всей моей любви к оной.
> даже в IE11 проблем, как таковых, не наблюдается, а сервисами Гугла он работает
> даже лучше Лисы, при всей моей любви к оной.А caniuse.com таки почему-то считает IE11 хламом, если по фичам поклацать. Там эдж то выглядит тухловато, а остальные ишаки - просто трэш.
Пример: ишакообразные это единственные кто не умеет использовать image как edge элемента. Остальные сделали.
> Почему толсто, я вот пишу это с FF, но объективно, по потреблению памяти, нагрузке на процессор, использованию аппаратных декодеров видео и распределение нагрузки на GPU, как итог скорости и удобству работы Edge очень сильно опережает как FF, так ХромогоЭто всё на оффтопике только. Поставь себе уже операционную систему.
Я человек не религиозный, у меня дуалбут.
А дело оказывается в религии? А я то думал мне просо удобен GNU/Linux, а оказывается я в секту свидетелей Столлмана вступил.. /s
>> эффективность использования ресурсов многоядерных процессоров (разнесение нагрузки на все ядра)такое ощущение, что никто не слышал про треды.
Дреды? я слышал про дреды.
Проблема нитей в том, что у них общая память (на куче) при наличии собственных стеков и переменных внутри. Есть опасность компрометации какой-то нити из параллельно выполняющейся изменением общих переменных (на куче) и косвенно через управляющий поток главной нити. Что и показывает ситуация с падением браузера с открытыми вкладками, если где-то в нём на какой-то одной вкладке "оборвалась" какая-то нить.Для многопроцессного выполнения кода взаимовлияние нитей ограничено родным процессом, у каждого процесса стек и куча свои. Процессы изолированы друг от друга подсистемой виртуальной памяти ОС, их взаимодействие друг с другом регламентировано механизмом межпроцессного взаимодействия (IPC). Мозилловцы сейчас реализуют именно этот механизм.
> Есть опасность компрометации какой-то нити из параллельно выполняющейся изменением общих переменных ...А можно пример такой "компрометации"?
> Для многопроцессного выполнения кода взаимовлияние нитей ограничено родным процессом, у каждого процесса стек и куча свои. Процессы изолированы друг от друга подсистемой виртуальной памяти ОС, их взаимодействие друг с другом регламентировано механизмом межпроцессного взаимодействия (IPC).
Мне кажется это перебор. Можно же просто вынести в отдельный процесс часть задач.
Главным процессом контролировать выполнение.
Я тут себе представил картину -- 100 вкладок, и на каждую вкладку один процесс.
Создать нить намного дешевле, нежели процесс. При чем вкладки довольно часто открываются и закрываются. Из этого мы получаем, что fork() будет дергаться на каждый чих.
Ладно бы еще плодить процесс на отдельное окно браузера. Тогда пользователь может явно отделять что он хочет в отдельном процессе, а что в рамках одного.
Все таки окон открыто меньше, чем вкладок.
В общем мне кажется до конца про оптимальный механизм никто не думал.
Просто посмотрели что у хрома на вкладку отдельный процесс, а давайте мы тоже так сделаем.
>> Есть опасность компрометации какой-то нити из параллельно выполняющейся изменением общих переменных ...
> А можно пример такой "компрометации"?
>> Для многопроцессного выполнения кода взаимовлияние нитей ограничено родным процессом, у каждого процесса стек и куча свои. Процессы изолированы друг от друга подсистемой виртуальной памяти ОС, их взаимодействие друг с другом регламентировано механизмом межпроцессного взаимодействия (IPC).
> Мне кажется это перебор. Можно же просто вынести в отдельный процесс часть
> задач.
> Главным процессом контролировать выполнение.
> Я тут себе представил картину -- 100 вкладок, и на каждую вкладку
> один процесс.
> Создать нить намного дешевле, нежели процесс.В КАКОЙ ОПЕРАЦИОННОЙ СИСТЕМЕ это имеет место, не укажете? В той же,в которой межпроцессное взаимодействие ограничено тем, что каждый процесс имеет ГЛАВНОЕ ОКНО, не так ли?
Так вот, в НОРМАЛЬНОЙ ОС нет необходимости на машине конечного пользователя переходить от ПРОЦЕССОВ к НИТЯМ, на мой взгляд... ЛЮбите десяточку - любИте и нити вместо процессов, что уж там...
Кричать не надо, я могу и строчными прочитать.> В КАКОЙ ОПЕРАЦИОННОЙ СИСТЕМЕ это имеет место, не укажете?
Что именно?
> Так вот, в НОРМАЛЬНОЙ ОС нет необходимости на машине конечного пользователя переходить от ПРОЦЕССОВ к НИТЯМ, на мой взгляд...
А что такое нормальная ОС?:)
Вы не понимаете, что нити имеют тоже свою нишу применения.
А создание нового процесса ведет к расходам как процессорного времени так и других ресурсов. Так вот применение нитей может сократить бесполезный расход ресурсов, если в этом нет необходимости. Но тут опять же надо исходить из задач, которые выполняет процесс.> ЛЮбите десяточку - любИте и нити вместо процессов, что уж там...
Извините но вашу "десяточку" я только на видео или скриншотах видел.
Судя по всему у вас не велики познания в этой теме, да еще и паранойя)
> В КАКОЙ ОПЕРАЦИОННОЙ СИСТЕМЕ это имеет место, не укажете?Да в любой. У нитей shared все адресное пространство процесса и свой только local storage. А у процесса приватное почти все. Хотя продвинутые операционки могут и частично реюзать страницы parent процесса, покуда они не отличаются. Но приватных областей памяти намного больше.
В лине например тред и процесс - все один фиг все LWP. Но у тредов unshare()'нуто поменьше, а у процессов - побольше. Поэтому процессы несколько тяжелее тредов по потреблению ресурсов, хотя принципиально не отличаются и разница только в том что именно unshare(). А если еще веселее unshare()ить - получится контейнер. И тормазила никак в это не может - фичами нормальных операционок эти виндозные мышевозилы как раз и не умеют пользоваться, в отличие от хромиума.
> Так вот, в НОРМАЛЬНОЙ ОС нет необходимости на машине конечного пользователя переходить
> от ПРОЦЕССОВ к НИТЯМ, на мой взгляд...Процессы больше памяти потребляют, что ни говори. У них больше приватных областей.
> Создать нить намного дешевле, нежели процесс.SIGSEGV существенно проще обработать и восстановиться после него, если каждый процесс в отдельной вкладке. Память у процессов изолирована, у потоков (или нитей, если вам так удобнее) - нет.
А в случае хромого - privacy скорее напоминает бред маркетологов. А основная причина либо в том, что более одного экземпляра яваскрипта нельзя сделать, то ли изначально планировали сделать так чтобы весь браузер не падал при падении вкладки. Если данные не нужно активно менять в родительском процессе, то fork - это самое что ни на есть идеальное решение и по быстродействию и по изоляции.
> SIGSEGV существенно проще обработать и восстановиться после него, если каждый процесс в отдельной вкладке.Честно говоря не уверен. Ничего мне не мешает обработать SIGSEGV и перезапустить поток снова. Но при процессе затраты будут больше. Но SIGSEGV это исключительная ситуация.
> Память у процессов изолирована, у потоков (или нитей, если вам так удобнее) - нет.
Мне удобней называть потоками, но поскольку отвечал на комментарий пришлось употребить термин нить.
Изоляция памяти дает какой-то огромный плюс? При правильном проектировании программы
обычно в этом нет острой необходимости. В конце концов можно же ведь делать разделения на процессы в рамках какого-нибудь контекста, когда это явно нужно.
Ну вот типичная ситуация. Я открываю один сайт на нескольких вкладках. Зачем мне тут такое разделение спрашивается?
> Честно говоря не уверен. Ничего мне не мешает обработать SIGSEGV и перезапустить
> поток снова.Тем не мене, сбои как таковые выносят весь процесс. Просто потому что память общая и факап в одном треде может отлиться всему процессу, попортив что-нибудь глобально, видимо вообще ВСЕМ тредам. А у процессов память приватная и даже если процесс себе память испортит - остальные процессы это не затрагивает. С другой стороны, тредам несколько проще коммуницировать между собой - процессы живут своими жизнями и в момент fork() их состояния более не синхронизируются между собой, хоть изначально и одинаковые. И там уже 2 независимых набора переменных. А чтобы передать что-то между процессами - извольте IPC или сети уже. Или какой там shared mem явно заказать.
> Но при процессе затраты будут больше. Но SIGSEGV это исключительная ситуация.
И как раз проблемы в том что исключительные ситуации могут накрыть все треды сразу, а вот все процессы сразу - в современных операционках изоляция процессов друг от друга и от ос - by design.
SIGSEGV - это показатель того, что где-то в программе что-то сильно пошло не так. Во-первых, не всегда понятно где именно это случилось, во-вторых не на любую проблему возникнет SIGSEGV. Например, поток 2 может проехаться по стеку потока 1 (механизма защиты от такого нет), а потом поток 1 упадет, или сделает что-то плохое (отправит номер кредитки на сервер злоумышленника)... SIGSEGV в момент модификации потоком 2 стека потока 1 будет молчать. Вот от такой проблемы отдельные процессы защищают хорошо.По личному опыту я бы сказал, что отдельные процессы повышают живучесть программы до 95-99% (тут многое будет зависеть от интенсивности IPC и его возможностей). SIGSEGV в лучшем случае даст живучесть 70% при рандомных ошибоках в программе (в случае Windows SEH, или Access violation в дельфи/билдере). При целенаправленной атаке процент живучести и защиты от потенциальных уязвимостей падать до нуля. На линуксе этот процент живучести вообще 0 - программа либо завершается, либо пытается перезапуститься (это в целом правильно, ошибка обнаружена, может произойти все что угодно, лучше вообще прибить все нафиг; но в дельфи можно хотя бы попытаться сохраниться...).
Конкретно в случае с браузерами неприятно, когда при 100+ вкладках из-за ошибки в браузере при падении одной вкладки приходится перезапускать весь браузер... Поэтому в отдельных процессах есть свой шарм. Какой из вариантов лучше (processes vs threads) я не могу сказать, и у одних есть плюсы и у других. Каких-то сильных оверхедов от процессов, ИМХО, не будет, если сделать аккуратно. Ну как бы разы могут быть, но не порядки... при хорошей оптимизации так вообще 10-20% разницы будет. И еще вопрос кто победит, MySQL может вообще на отдельной машине работать и при этом часто оказывается быстрее SQLite, которая в том же адресном пространстве.
P.S. Еще не стоит исключать, что самым банальным объяснением "каждая вкладка в отдельном процессе" может быть ограничение гугловского javascript (v6, v8 или как он там). И просто пришлось сделать каждую вкладку в отдельном процессе (по сути одну страницу в браузере). А живучесть браузера при падении вкладки - это вообще случайный side-эффект.
> а потом поток 1 упадетСледует читать как "а потом поток 1 упадет и утянет за собой весь процесс". Типа фикс...
> SIGSEGV существенно проще обработать и восстановиться после него, если каждый процесс в отдельной вкладке. Память у процессов изолирована, у потоков (или нитей, если вам так удобнее) - нет.SIGSEGV - синхронный сигнал -> его обработка происходит в контексте треда а не процесса -> нет проблем его обработать на уровне треда
>> Есть опасность компрометации какой-то нити из параллельно выполняющейся изменением общих переменных ...
> А можно пример такой "компрометации"?От меня - нет.
>> Для многопроцессного выполнения кода взаимовлияние нитей ограничено родным процессом, у каждого процесса стек и куча свои. Процессы изолированы друг от друга подсистемой виртуальной памяти ОС, их взаимодействие друг с другом регламентировано механизмом межпроцессного взаимодействия (IPC).
> Мне кажется это перебор. Можно же просто вынести в отдельный процесс часть
> задач.
> Главным процессом контролировать выполнение.Это и есть то, чем они занимаются.
> Я тут себе представил картину -- 100 вкладок, и на каждую вкладку один процесс.
> Создать нить намного дешевле, нежели процесс.В Windows дешевле создать и запустить нить, а также прибить её. В Unix/POSIX дешевле форкнуть процесс.
> В общем мне кажется до конца про оптимальный механизм никто не думал.
> Просто посмотрели что у хрома на вкладку отдельный процесс, а давайте мы тоже так сделаем.Просто так безопаснее получается, чем с кучей нитей.
> От меня - нет.Изена скомпрометировали :)
> В Windows дешевле создать и запустить нить, а также прибить её. В
> Unix/POSIX дешевле форкнуть процесс.На самом деле как минимум в линухе тред таки полегче процесса. Но вообще оба будут LWP в конечном итоге. LWP - и тред, и процесс и даже контейнер.
я к тому, что повысить такую эффективность можно не только процессами>> повысить эффективность использования ресурсов многоядерных процессоров (разнесение нагрузки на все ядра),
процессы не панацея. Некоторых это вводит в заблуждение.
У них вообще очень узкое применение: наверно только там где надо перемалывать чиселки или массивы данных, не особо заботясь о безопасности. Браузер уж точно под это не подходит.
Наплодить процессов это конечно мегакруто.А что и как разделять это уже выходит не так важно.
Уже провел аудит кода?
Ага:)
После включения многопроцессного режима firefox скатился в самое дно. Firefox - 1.5 Gb памяти, chrome - 3 Gb памяти. Закрываешь 9/10 вкладок в обеих браузерах: Firefox - 1.2 Gb памяти, Chrome - 300 Mb. В хроме лишний жор памяти можно исправить просто закрыв вкладки малозначимые и работать дальше. В лисе же придется закрывать и запускать браузер заново... Че он так течёт то сильно?! Ведь вообще же не освобождает память после закрытия вкладок. Лучше уж на каждую вкладку по процессу, пусть больше ест, зато контроль над памятью лучше. Я уж не говорю про жуткие тормоза. Веб вообще стал последнее время жутко не оптимизирован. Может есть дополнения, которыми можно поотключать какие то не нужные функции из жабоскриптов? Например, на многих сайтах включен захват указателя мыши. Такой курсором повилял на странице, и сразу процессор под 50% забился. Он на планшетах курсора нет, соответственно движения мышьи не захватывается, и производительность отличная из-за этого. Вот ютуб включил новый дизайн, и теперь жор процессора при просмотре видео стал в три-четыре раза больше, жесть, такое ощущение, что они вообще не смотрят на жор процессора при разработке дизайна, наверное даже не знают об этом, им красивые фреймворки с свистелками дали, они и лепят по готовому api, не смотря ни на что, капец...
> Веб вообще стал последнее время жутко не оптимизирован.Ну дык. Скажите это маркетологам.
> Может есть дополнения, которыми можно поотключать какие то не нужные функции из жабоскриптов?
NoScript + Gresemonkey. Только не забывай, что дополнения тоже любят память и проц кушать.
Только что заметил. Youtube, одна вкладка с видео, стоит на паузе. Процесс WebContent одно ядро на 100% грузит... Капец. В хроме кстати, при переходе ютуба на новый дизайн жор процессора увеличился не на много. Было 12-15%, стало 20-23%.
Но это не лиса, где с 25% поднялось до 70%... Причина как я понял в том, что ютуб вешает процесс WebContent и он забивает одно ядро на 100%, а остальные 20% идут с основного процесса.
> Quantum Compositor ... только на платформе Windows при наличии Direct3D 11Почему не ОпенГЛ, почему не опенсорсные ОСи получают приоритет, гнилая контора. Сижу и жру кактус только потому, что нормальных альтернатив нет.
Потому что 2%. У лисы и так доля юзеров мала, приоритет на открытые ОСи будет последним гвоздём в крышку гроба.
Где проще делать, там быстрее и делается.
>> В ночных сборках Firefox, которые лягут- Ладно они лягут, теперь все ядра будут лежать вместе с ними.
Светлое будущее стало светлее
Круто. Запускаешь браузер и тупо не видишь других процессов, кроме тыщапицот процессов браузера. Вот это прогресс. Прогресс на уровне открытия IE6 отдельными окнами, когда ещё вкладок не было. Теперь есть типа "вкладки", за которыми скрываются тупо открытые целые отдельные окна. Это регресс, а не прогресс
Очевидно, что в скором будущем вкладки вырежут вообще :) А зачем они нужны? Ведь многопроцессность же
> Очевидно, что в скором будущем вкладки вырежут вообще :) А зачем они
> нужны? Ведь многопроцессность жеВо-первых -- и правда, зачем нужны костыли^W вкладки? У меня вот ВМ никак не хуже браузера сумеет вкладки "проэмулировать" (причем, не только горизонтально) и более удобным образом все это расположить, да и переключаться можно будет привычно, как между прочими окнами.
Зачем мне "недо-WM" в браузере?
Во-вторых -- казалось бы, причем многопроцессорность и вкладки/их отсутствие. Ну, кроме как в некоторых особо черезпопных^W оригинальных ОСях с принципом "Один процесс, одно главное окно!" )
> Во-первых -- и правда, зачем нужны костыли^W вкладки? У меня вот ВМ никак не хуже браузера сумеет вкладки "проэмулировать" (причем, не только горизонтально) и более удобным образом все это расположить, да и переключаться можно будет привычно, как между прочими окнами.
> Зачем мне "недо-WM" в браузере?Ты ещё предложи вот это http://tools.suckless.org/tabbed/ юзать.
> Ты ещё предложи вот это http://tools.suckless.org/tabbed/ юзать.Да используйте на здоровье, я разве запрещаю?
Или все, чего нет в окошках-яблоках по умолчанию только что-то для гиков и "НИНУЖНА"? То-то яблочники недавно перетянули фичу из тайлинга, обозвав ее по своему - Split View и расставив акценты так, как будто это очередная инновация )
> Во-первых -- и правда, зачем нужны костыли^W вкладки? У меня вот ВМ никак не хуже браузера сумеет вкладки "проэмулировать"Я просто не смог сдержаться, после этого :)
Не осталось нормальных браузеров! Кто-нить, сделайте нормальный браузер без заваривания кофе, пожалуйста, и не жрущий ресурсов, как GTA 5. Готов даже донатить, еханный бабай
Делаем, но дело это не простое.
> Делаем, но дело это не простое.А что за браузер то?
Modest (https://github.com/lexborisov/Modest)
"Голый" Си без зависимостей
> Modest (https://github.com/lexborisov/Modest)
> "Голый" Си без зависимостейВыглядит довольно круто. Правда из описания следует что это все-таки не браузер а либа, которая как я понял использует еще несколько ваших же либ для рендера HTML.
А с JS не будет адский геморрой? Он умеет дофига и прикрутить его к DOM наверное достаточно геморройно. Но идея все-равно довольно крута.
Привет!Да, это либа рендера, который разрабатывается в данный момент. Он не использует никаких внешних библиотек, разрабатывается на голом Си (для встраиваемости) и пишется полностью с ноля, не имеет заимствованного кода. хтмл/цсс парсер имеют отдельную ветку (создаются как либы) исключительно для удобства их использования во "внешней среде", но в Modest они включены и таскать их отдельно не нужно. Более того, код этих библиотек просто копируется из Modest. Так задумывалось изначально — возможность использовать некоторые компоненты Modest отдельно от всего рендера.
Рендер разрабатывается не ради рендера. Не сказал бы что итог, но основная цель разработки это браузер.
DOM Events/JS и прочее прикрутить не является проблемой, но работу проделать придется, всё разрабатывается с учётом подключения всей "периферии".
Успехов вам, очень хорошее начинание.
> Не осталось нормальных браузеров! Кто-нить, сделайте нормальный браузер без заваривания
> кофе, пожалуйста, и не жрущий ресурсов, как GTA 5. Готов даже
> донатить, еханный бабайhttp://suckless.org/rocks
Выбирай. Раздел: Web Browsers. Некоторые браузеры там не умеют не только кофе варить, но и в CSS.
Скачал. Настроил 4 процесса. Как лагало, так и лагает.
Планшет на Cherry trail, 4GB памяти.
Объективно и непредвзято если, то самый оптимальный бравзер (скорость, энергопотребление) - это edge...