The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

В ночных сборках Firefox появился новый режим тестирования многопроцессной работы

14.02.2014 19:30

В ночных сборках Firefox появился новый режим тестирования многопроцессного выполнения, при котором обработка контента каждой вкладки выносится в отдельный процесс. Новый режим может быть активирован через установку переменной "browser.tabs.remote.autostart" в настройках about:config.

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

  1. Главная ссылка к новости (http://www.ghacks.net/2014/02/...)
  2. OpenNews: Доступна для тестирования многопроцессная версия Firefox
  3. OpenNews: Разработчики Firefox обозначили цели перехода на новую многопроцессную архитектуру
  4. OpenNews: Разработчики Mozilla начали перевод Firefox на многопроцессную архитектуру
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/39093-firefox
Ключевые слова: firefox
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (50) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 23:41, 14/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +6 +/
    неужели будет жрать как хром
     
     
  • 2.5, Аноним (-), 00:28, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    На Linux разница между процессом и потоком минимальна в плане потребления памяти, так что это вряд ли. А вот устойчивость должна повыситься, т.к. при сегфолте в одном процессе другие процессы продолжат работу.
     
     
  • 3.9, Crazy Alex (ok), 01:04, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Если бы речь шла о нативном коде - то так и было бы. Но Firefox - это, кроме всего прочего, куча JS-кода и статистики для JIT, и это операционная система сама шарить не сможет.
     
  • 3.13, Rodegast (??), 01:23, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > На Linux разница между процессом и потоком минимальна

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

     
     
  • 4.28, ананим (?), 14:36, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    >новый режим тестирования многопроцессного выполнения,

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

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

     
     
  • 5.29, pavlinux (ok), 15:23, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Если из Лады Калины выкинуть всё кишки, поставить коробку от AMG, двиган от BMW,
    тормоза от ламбы, кожу, дерево, хром... Это всё будет Лада Калина?

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

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

     
     
  • 6.30, ананим (?), 15:30, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Это будет всё-равно автомобиль.

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

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

     
     
  • 7.31, ананим (?), 15:34, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    ззыж
    >[оверквотинг удален]
    >       /* Прототип обёрточной функции 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() используется для реализации нитей…

     
     
  • 8.33, pavlinux (ok), 15:41, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Мужики, сюда Шоу начинается, анонимы учат павлика ядру ... текст свёрнут, показать
     
     
  • 9.34, ананим (?), 15:46, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Да-да, позови на помощь 9786 ... текст свёрнут, показать
     
  • 9.45, Forth (ok), 00:40, 16/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Павлик, хочешь тебя не анонимы поучат ядру Учись ядру, Павлик http kernel... текст свёрнут, показать
     
  • 7.32, pavlinux (ok), 15:40, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Это будет всё-равно автомобиль.

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

     
     
  • 8.35, ананим (?), 15:47, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Пить тебе по пятницам да и в другие дни меньше надо ... текст свёрнут, показать
     
  • 8.37, ананим (?), 16:07, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    во-вторых http www informit com articles article aspx p 370047 seqNum 2 ... текст свёрнут, показать
     
  • 3.15, Аноним (-), 02:01, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    > На Linux разница между процессом и потоком минимальна

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

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

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

     
     
  • 4.19, Xasd (ok), 04:17, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • –3 +/
    > открыв 400 табов...

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

    [/sarcasm]

     
  • 4.40, ананим (?), 17:06, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> На Linux разница между процессом и потоком минимальна
    > Кто вам сказал этот булшит? Вы линукс на картинке видели? Или с ядром 2.4, где треды были безблагодатные?

    Он всё правильно сказал. И не в том смысле, что трэды в линухе неэффективны также как процессы, а в том, что в линухе процессы по эффективности догоняют трэды.
    вон выше уже сказал https://www.opennet.ru/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).
    Сейчас же это и просто такой же по эффективности механизм распараллеливания хода выполнения (где не нужно заменять текущий образ), как и потоки.
    Особенно если есть минимум общих данных (а только они и пишутся) для записи (!!! для чтения они итак одни).

     
  • 2.6, Аноним (-), 00:47, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Это же только для тестирования. Не?
     
  • 2.8, kurokaze (ok), 01:00, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Брать многоядерные процы и экономить на памяти это надо большим оригиналом быть
     
     
  • 3.10, Crazy Alex (ok), 01:05, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Как ни странно, на компьютерах иногда запускают и другие программы кроме браузера. А многоядерные процы сейчас даже в мобилках.
     
  • 3.11, Аноним (-), 01:09, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Есть причина сидеть на одноядерном проце. Маргинальная, но причина.
    Безопасность.
     
     
  • 4.12, Аноним (-), 01:15, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    А поподробней?
     
     
  • 5.20, Xasd (ok), 04:19, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • –2 +/
    он наверно имеет ввиду процессоры не от Intel\AMD
     
     
  • 6.21, Аноним (-), 06:33, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    И что в них, в каждом втором ядре - шпион?
     
  • 6.43, Аноним (-), 18:57, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Вы ошибаетесь.
    Отучайтесь додумывать за других.
     
  • 5.44, Аноним (-), 19:02, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    К примеру: http://www.matousec.com/info/articles/khobe-8.0-earthquake-for-windows-deskto - про оффтопик конечно, но как иллюстрация возможного покатит.
     
     
  • 6.47, ананим (?), 06:50, 16/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    И как эта ссылка связана с одноядерным процом?
    Наоборот, вот тут
    >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.

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

     
     
  • 7.49, Аноним (-), 10:29, 16/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Весь текст читали?
    > 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.
     
     
  • 8.50, ананим (?), 13:01, 16/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    more simple on multiprocessor systems ни разу не only on multiprocessor systems ... текст свёрнут, показать
     
     
  • 9.51, Аноним (-), 13:52, 16/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Напишите об этом авторам статьи У меня недостаточно квалификации чтобы обсуждат... текст свёрнут, показать
     
  • 3.18, Аноним (-), 03:37, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Брать многоядерные процы и экономить на памяти это надо большим оригиналом быть

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

     
     
  • 4.52, Аноним (-), 19:44, 16/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    >> Брать многоядерные процы и экономить на памяти это надо большим оригиналом быть
    > Да вот хром ухитряется OOM на 8 гигах словить. Интересные понятия о
    > экономии..

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

     
     
  • 5.53, Aleks Revo (ok), 11:12, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Да ладно, достаточно одной вкладки, если на странице идёт интенсивный вывод в консоль.
     
  • 2.42, anonymous (??), 17:56, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > неужели будет жрать как хром

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

     

  • 1.2, Аноным (ok), 23:46, 14/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +4 +/
    Не знаю, нас и в одном процессе неплохо кормят.
     
  • 1.3, Xasd (ok), 23:53, 14/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    интересно, там будет ли отдельный процесс "зигота", из которого будут форкаться другие процессы?
     
  • 1.4, Anonymous528 (?), 00:15, 15/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    > В ночных сборках Firefox появился

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

     
     
  • 2.7, 3draven (ok), 00:53, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Правда.
     
     
  • 3.14, paulus (ok), 01:58, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +2 +/
    В 30.0a1 (2014-02-14) точно есть, так что правда... Что-то нет желания пробовать, ранее почти все расширения отвалились от такого режима.
     

  • 1.24, zhuk (?), 10:18, 15/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    в версии 30.0a1 (2014-02-14) опция есть. правда я не знаю действительно ли она запускает вкладки в отдельных процессах. могу лишь сказать, что с ней не работает открывание ссыдки в другой вкладке по контрол или средней кнопке. хотя... оно и содержимое вкладки то не отображает. страница грузится, но ее не видно. так что торопыгам сидеть на жопе ровно и ждать!
     
     
  • 2.25, arka (?), 13:18, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    В ночнушках может вообще всё не работать, т.к. это по сути trunk на определённый момент времени со всеми вытекающими последствиями. Прогонятся тесты - поправят и ждём следующую ночнушку.
     
     
  • 3.27, zhuk (?), 14:21, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    я знаю что это такое и откуда берется. со времен 4й ветки на ночнике сижу.
     
     
  • 4.36, ананим (?), 15:49, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • –4 +/
    >на ночнике сижу.

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

     
     
  • 5.46, Анончик (?), 04:03, 16/02/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    что можно выливать из светильника?
    керосин? так уже везде лепестричество
     
     
  • 6.48, ананим (?), 06:53, 16/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Меня то чего спрашиваешь?
    Кто сидит на ночнике, того и спрашивай, что он там высидел.
     
  • 4.38, arka (?), 16:43, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Понятненько, ну тогда ждём от тебя тикета :)
     
  • 2.39, пикапика (?), 17:05, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    Подтверждаю, во вкладках после загрузки белая пустота. Но и без включения многопроцессорности стал явно быстрее работать по сравнению с 26.
     
     
  • 3.41, ананим (?), 17:09, 15/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > многопроцессорности

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

     
  • 3.54, Aleks Revo (ok), 11:15, 18/02/2014 [^] [^^] [^^^] [ответить]  
  • +/
    > Подтверждаю, во вкладках после загрузки белая пустота. Но и без включения многопроцессорности
    > стал явно быстрее работать по сравнению с 26.

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

     

  • 1.55, count0krsk (ok), 11:45, 18/02/2014 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Скажите, кто-нибудь видел такую багу: Лиса падает в ООМ, если своп отключен. При этом добавил памяти с 2х гб до 5ти - тот же эффект. Включаешь своп, занято 0, но падать перестает. Вкладок штук 40-50 при этом. Началось с 20х, сейчас 26.0, вроде получше.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2021 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру