URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 94099
[ Назад ]

Исходное сообщение
"В ночных сборках Firefox появился новый режим тестирования м..."

Отправлено opennews , 14-Фев-14 23:41 
В ночных сборках (http://nightly.mozilla.org/) Firefox появился новый режим тестирования многопроцессного выполнения (http://www.opennet.me/opennews/art.shtml?num=38598), при котором обработка контента каждой вкладки выносится в отдельный процесс. Новый режим может быть активирован через установку переменной "browser.tabs.remote.autostart" в настройках about:config.

От ранее доступного в ночных сборках режима тестирования "browser.tabs.remote", новый режим отличается тем, что выполнение в отдельных процессах инициируется автоматически, в то время как в ранее доступном режиме  для запуска обработчика в отдельном процессе требовалось явно запустить новое окно через меню "New OOP Window".


URL: http://www.ghacks.net/2014/02/13/firefoxs-multi-process-arch.../
Новость: http://www.opennet.me/opennews/art.shtml?num=39093


Содержание

Сообщения в этом обсуждении
"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 14-Фев-14 23:41 
неужели будет жрать как хром

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 15-Фев-14 00:28 
На Linux разница между процессом и потоком минимальна в плане потребления памяти, так что это вряд ли. А вот устойчивость должна повыситься, т.к. при сегфолте в одном процессе другие процессы продолжат работу.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Crazy Alex , 15-Фев-14 01:04 
Если бы речь шла о нативном коде - то так и было бы. Но Firefox - это, кроме всего прочего, куча JS-кода и статистики для JIT, и это операционная система сама шарить не сможет.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Rodegast , 15-Фев-14 01:23 
> На Linux разница между процессом и потоком минимальна

Причём здесь процессы? Насколько я понял речь идёт только о потоках.


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 15-Фев-14 14:36 
>новый режим тестирования многопроцессного выполнения,

вот тут какбэ при том.
Потоки — это уже протухший трэнд. Лет 5-10 назад.
Теперь обратно покойника несут, к процессам.

зыж
в линухе и потоки, и процессы создаются в результате одним системным вызовом clone2.
но поскольку спектр возможных настроек для этого вызова огромен, то по традиции и делят всего на 2-е категории — на потоки и процессы (разделяют память или нет).
тотже fork к примеру это всего-лишь вызов clone2 с определёнными преднастроенными параметрами. В общем можно создать такой поток, который уже больше процесс, чем поток. И наоборот.
подробнее — man clone (есть русская версия).


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено pavlinux , 15-Фев-14 15:23 
Если из Лады Калины выкинуть всё кишки, поставить коробку от AMG, двиган от BMW,
тормоза от ламбы, кожу, дерево, хром... Это всё будет Лада Калина?

И ваще, какого фига, ты перелез с прикладного на системный уровень. ...
Полезли тогда дальше...

clone() это та же хня, что и memcpy(), только флаги другие, могу доказать!
Везде есть mov ax, bx, jmp, cmpxchg, ret,....  


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 15-Фев-14 15:30 
Это будет всё-равно автомобиль.

Потоки, процессы,… контекст выполнения, вот что должен понимать программист. Всё остальное меняется в зависимости от твоих подребностей и понимания всего этого хозяйства.
Это как транзакция для rdbms.
Ну а если ты знаешь только поток/процесс, то и возможности у тебя только этим и ограничены.

зыж
man clone то видел?
ну а чё тогда глупости говоришь.


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 15-Фев-14 15:34 
ззыж
>[оверквотинг удален]
>       /* Прототип обёрточной функции glibc */
>       #include <sched.h>
>       int clone(int (*fn)(void *), void *child_stack,
>                 int flags, void *arg, ...
>                 /* pid_t *ptid, struct user_desc *tls, pid_t *ctid */ );
>…
>ОПИСАНИЕ
>       Вызов clone() создаёт новый процесс подобно fork(2).
>…
>       В основном, вызов clone() используется для реализации нитей: несколько нитей управления в программе, выполняющиеся одновременно в общем пространстве памяти.

Вызов clone() создаёт новый процесс… В основном, вызов clone() используется для реализации нитей…


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено pavlinux , 15-Фев-14 15:41 
> ззыж

Мужики, сюда... Шоу начинается, анонимы учат павлика ядру!


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 15-Фев-14 15:46 
Да-да, позови на помощь! ☺

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Forth , 16-Фев-14 00:40 
Павлик, хочешь тебя не анонимы поучат ядру? :)
Учись ядру, Павлик!
http://kernelnewbie.org

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено pavlinux , 15-Фев-14 15:40 
> Это будет всё-равно автомобиль.

Я и говорю, что clone(), что memcpy() это всё равно команды процессора.


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 15-Фев-14 15:47 
>… clone(), что memcpy() это всё равно команды процессора.
>… команды процессора.

Пить тебе по пятницам (да и в другие дни) меньше надо.


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 15-Фев-14 16:07 
>что clone(), что memcpy()

во-вторых:
>linux implements fork() via the clone() system call.
>In Linux, fork() is implemented through the use of copy-on-write pages. Copy-on-write (or COW)…

http://www.informit.com/articles/article.aspx?p=370047&seqNum=2


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 15-Фев-14 02:01 
> На Linux разница между процессом и потоком минимальна

Кто вам сказал этот булшит? Вы линукс на картинке видели? Или с ядром 2.4, где треды были безблагодатные?

> в плане потребления памяти, так что это вряд ли.

Только вот гуглохром почему-то OOM ловит на машине с 8 гиг, а догнать лису за 2 гига не вышло даже открыв 400 табов...


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Xasd , 15-Фев-14 04:17 
> открыв 400 табов...

о горе! как же теперь нам открывать 400 табов!

[/sarcasm]


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 15-Фев-14 17:06 
>> На Linux разница между процессом и потоком минимальна
> Кто вам сказал этот булшит? Вы линукс на картинке видели? Или с ядром 2.4, где треды были безблагодатные?

Он всё правильно сказал. И не в том смысле, что трэды в линухе неэффективны также как процессы, а в том, что в линухе процессы по эффективности догоняют трэды.
вон выше уже сказал http://www.opennet.me/openforum/vsluhforumID3/94099.html#37 но повторю:
>linux implements fork() via the clone() system call.
>In Linux, fork() is implemented through the use of copy-on-write pages. Copy-on-write (or COW)…
> man clone|fork

Фактически раньше fork использовали в основном, чтобы там (в новом процессе) запустить другую программу (exec** и тд, где семейство функций exec() заменяет текущий образ процесса новым ­— man execv).
Сейчас же это и просто такой же по эффективности механизм распараллеливания хода выполнения (где не нужно заменять текущий образ), как и потоки.
Особенно если есть минимум общих данных (а только они и пишутся) для записи (!!! для чтения они итак одни).


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 15-Фев-14 00:47 
Это же только для тестирования. Не?

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено kurokaze , 15-Фев-14 01:00 
Брать многоядерные процы и экономить на памяти это надо большим оригиналом быть

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Crazy Alex , 15-Фев-14 01:05 
Как ни странно, на компьютерах иногда запускают и другие программы кроме браузера. А многоядерные процы сейчас даже в мобилках.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 15-Фев-14 01:09 
Есть причина сидеть на одноядерном проце. Маргинальная, но причина.
Безопасность.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 15-Фев-14 01:15 
А поподробней?

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Xasd , 15-Фев-14 04:19 
он наверно имеет ввиду процессоры не от Intel\AMD

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 15-Фев-14 06:33 
И что в них, в каждом втором ядре - шпион?

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 15-Фев-14 18:57 
Вы ошибаетесь.
Отучайтесь додумывать за других.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 15-Фев-14 19:02 
К примеру: http://www.matousec.com/info/articles/khobe-8.0-earthquake-f... - про оффтопик конечно, но как иллюстрация возможного покатит.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 16-Фев-14 06:50 
И как эта ссылка связана с одноядерным процом?
Наоборот, вот тут
>The problem
>The code of system services runs on IRQL PASSIVE_LEVEL which also applies to their hook handlers. Code running at this level can access pageable memory and, when the scheduler decides, might be preempted by another thread. And the scheduler plays the key role in the argument-switch attack.
>…
>If another thread of the application is scheduled onto the processor, it might theoretically change the driver service name passed to the NtLoadDriver call because the whole string lies in user mode portion of address space.

Как раз про вытеснение потока в кернел-спейсе на одном ядре.


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 16-Фев-14 10:29 
Весь текст читали?
> Things get more simple on multiprocessor systems where two or more threads of the same application might run really simultaneously and the context switch at the crucial moment is not really needed.
> Surprisingly, the attacking technique may be implemented even if the attacker thread runs in different process than the faker thread.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 16-Фев-14 13:01 
more simple on multiprocessor systems ни разу не only on multiprocessor systems.
к тому же я с этим не согласен. на каком основании собственно?
и как это вытекает из этого:
>The execution of hook handler had advanced too far to detect this modification and perform additional checks to stop malicious driver from loading. When the scheduler switch thread context back to the thread executing the hook handler, the original system service is invoked and might load driver which name was not subject of any security check made by the security software. And this is exactly how the argument-switch attack works.

Абсолютно монопенесуально, более того, на одном ядре переключение контекста выполнения более облегчёно. тут, на опеннете как раз недавно обсуждали пседослучайные числа, «застрявшие» в кэше процессора и их возможную подмену.
И хоть хуки блобьего ядра вантуза та ещё (вынужденная) кaкaшкa, но это ни как не отменяет тех механизмов, что есть на аппаратном уровне (рекомендую почитать Д.Бовет, М.Чезати «Ядро Linux», стр.151 и до 305 с irq и вытеснением)


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 16-Фев-14 13:52 
> к тому же я с этим не согласен.

Напишите об этом авторам статьи.
У меня недостаточно квалификации чтобы обсуждать более предметно, чем цитировать статью.
Что прочитал то и цитирую - как чукча.


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 15-Фев-14 03:37 
> Брать многоядерные процы и экономить на памяти это надо большим оригиналом быть

Да вот хром ухитряется OOM на 8 гигах словить. Интересные понятия о экономии..


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноним , 16-Фев-14 19:44 
>> Брать многоядерные процы и экономить на памяти это надо большим оригиналом быть
> Да вот хром ухитряется OOM на 8 гигах словить. Интересные понятия о
> экономии..

Не открывай 1024 таба, он не будет ловить. Ты, это, Гондурас не чеши - он и не будет беспокоить. Смекаешь?


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Aleks Revo , 18-Фев-14 11:12 
Да ладно, достаточно одной вкладки, если на странице идёт интенсивный вывод в консоль.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено anonymous , 15-Фев-14 17:56 
> неужели будет жрать как хром

Ну, нормально.
Морда как у хрома.
Реклама, не совсем как у хрома, но один хрен.
Вот теперь и жор памяти будет.
Верной дорогой идёте, товарищи.


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Аноным , 14-Фев-14 23:46 
Не знаю, нас и в одном процессе неплохо кормят.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Xasd , 14-Фев-14 23:53 
интересно, там будет ли отдельный процесс "зигота", из которого будут форкаться другие процессы?

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Anonymous528 , 15-Фев-14 00:15 
> В ночных сборках Firefox появился

Нет, еще не появился. Пока только  "browser.tabs.remote".


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено 3draven , 15-Фев-14 00:53 
Правда.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено paulus , 15-Фев-14 01:58 
В 30.0a1 (2014-02-14) точно есть, так что правда... Что-то нет желания пробовать, ранее почти все расширения отвалились от такого режима.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено zhuk , 15-Фев-14 10:18 
в версии 30.0a1 (2014-02-14) опция есть. правда я не знаю действительно ли она запускает вкладки в отдельных процессах. могу лишь сказать, что с ней не работает открывание ссыдки в другой вкладке по контрол или средней кнопке. хотя... оно и содержимое вкладки то не отображает. страница грузится, но ее не видно. так что торопыгам сидеть на жопе ровно и ждать!

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено arka , 15-Фев-14 13:18 
В ночнушках может вообще всё не работать, т.к. это по сути trunk на определённый момент времени со всеми вытекающими последствиями. Прогонятся тесты - поправят и ждём следующую ночнушку.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено zhuk , 15-Фев-14 14:21 
я знаю что это такое и откуда берется. со времен 4й ветки на ночнике сижу.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 15-Фев-14 15:49 
>на ночнике сижу.

выливать по утрам не забывай.


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Анончик , 16-Фев-14 04:03 
что можно выливать из светильника?
керосин? так уже везде лепестричество

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 16-Фев-14 06:53 
Меня то чего спрашиваешь?
Кто сидит на ночнике, того и спрашивай, что он там высидел.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено arka , 15-Фев-14 16:43 
Понятненько, ну тогда ждём от тебя тикета :)

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено пикапика , 15-Фев-14 17:05 
Подтверждаю, во вкладках после загрузки белая пустота. Но и без включения многопроцессорности стал явно быстрее работать по сравнению с 26.

"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено ананим , 15-Фев-14 17:09 
> многопроцессорности

многопроцессности ☺


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено Aleks Revo , 18-Фев-14 11:15 
> Подтверждаю, во вкладках после загрузки белая пустота. Но и без включения многопроцессорности
> стал явно быстрее работать по сравнению с 26.

Так они наконец-то решились и впилили Skie для линуха, до этого вообще иксы вешались при безобидной отрисовке на канвасе - даже в виндовой виртуалки удавалось добиться в несколько раз большей частоты кадров. И это не считая, что вместе с лисой тормозили все приложения


"В ночных сборках Firefox появился новый режим тестирования м..."
Отправлено count0krsk , 18-Фев-14 11:45 
Скажите, кто-нибудь видел такую багу: Лиса падает в ООМ, если своп отключен. При этом добавил памяти с 2х гб до 5ти - тот же эффект. Включаешь своп, занято 0, но падать перестает. Вкладок штук 40-50 при этом. Началось с 20х, сейчас 26.0, вроде получше.