The OpenNET Project / Index page

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

26.01.2012 19:19  Используемый в Firefox JavaScript-движок будет работать только в однопоточном режиме

Разработчики проекта Mozilla представили изменения в организации работы JavaScript-движка SpiderMonkey, в котором был серьёзно изменен подход к организации параллельного выполнения JavaScript-кода. Движок теперь будет работать только в однопоточном режиме, а распараллеливание, например, при выполнении WebWorkers или Parallel Javascript, будет обеспечено за счёт запуска внутри одного процесса отдельных экземпляров SpiderMonkey (JSRuntime), каждый из которых использует непересекающиеся области памяти.

Таким образом, SpiderMonkey больше не будет распараллеливать работу в рамках одного экземпляра JavaScript-движка (каждый из которых физически является экземпляром процесса JSRuntime), но будет на каждый новый обрабатываемый источник запускать дополнительные экземпляры. Причем каждый отдельный экземпляр будет использоваться в контексте своего собственного сборщика мусора, т.е. фрагментация и потребление памяти при такой стратегии должны уменьшиться, а скорость работы движка для некоторых типов приложений - возрастёт.

Вместо использования общей области памяти для всех объектов JavaScript, новая схема работы подразумевает задействования нескольких отдельных "куч" (heap). Концепция, в рамках которой реализованы множественные кучи, - получила название "отсеков" (compartment), где каждый отсек – это отдельная куча из JavaScript-объектов одинакового происхождения. При этом, SpiderMonkey может создавать множество своих экземпляров в одном и том же процессе, каждый из которых может быть доступен через различные потоки.

Изначально поддержка "отсеков" появилась в SpiderMonkey 1.8.5, вошедшего в состав Firefox 4.0, и использовалась для изоляции JavaScript-объектов от разных источников. Использование отсеков приводит как минимум к двум важным следствиям:

  • Все JavaScript-объекты, создаваемые каждым отдельным сайтом, располагаются в своих отдельных отсеках, что улучшает работу кэша, так как они располагаются всегда физически в одном участке памяти. Если раньше их поиск и выборка в памяти создавали избыточную нагрузку на процессор, то теперь они компактно и последовательно упакованы на небольшом участке памяти, который никак не пересекается с другими JavaScript-объектами;
  • Последнее напрямую связано со вторым важным следствием такой стратегии: теперь JavaScript-объекты (включая JavaScript-функции, которые являются частью этих объектов) могут обращаться исключительно в пределах своих отсеков, что чрезвычайно важно в свете множественных потенциальных проблем с безопасностью у прошлой модели. Для соблюдения этого реализован очень низкоуровневый механизм, который гарантирует, что на уровне работы разнородных объектов невозможно нарушить эту изоляцию. Это значит, что объекты из пространства mail.google.com никак не могут повлиять на работу объектов в отсеке www.bank.com. В то же самое время, в текущей реализации существует специальный тип объектов, который может работать между отсеками поверх границ их взаимной изоляции. Эти объекты контролируются и создаются самим движком для его системных нужд и называются "cross-compartment wrappers".

Напомним, что SpiderMonkey – это встраиваемый JavaScript-движок с открытым исходным кодом от компании Mozilla. Он написан на C/C++ и используется в нескольких продуктах от Mozilla, включая такие известные, как Firefox. Он распространяется под тройной лицензией - MPL/GPL/LGPL. SpiderMonkey 1.8.5 – это последний стабильный релиз движка, выполненный в виде отдельного встраиваемого модуля. С незначительными модификациями на нем базируется JavaScript-движок браузера Firefox начиная с версии 4.0.

  1. Главная ссылка к новости (http://blog.mozilla.com/luke/2...)
  2. OpenNews: Разработчики Firefox обозначили цели перехода на новую многопроцессную архитектуру
  3. OpenNews: Разработчики Mozilla работают над реализацией многопоточного рендеринга web-страниц
  4. OpenNews: Intel представил River Trail, расширение к JavaScript для параллельного программирования
  5. OpenNews: Firefox отказывается в обозримом будущем от перехода на многопроцессную модель
Автор новости: Igor Savchuk
Тип: К сведению
Ключевые слова: spidermonkey, javascript, firefox, mozilla
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, ILYA INDIGO, 21:03, 26/01/2012 [ответить] [смотреть все]
  • –1 +/
    Давайте уже поскорее 11-ую версию Firefox-а допиливайте, которая не будет течь!
     
     
  • 2.3, paulus, 21:28, 26/01/2012 [^] [ответить] [смотреть все] [показать ветку]
  • –7 +/
    Да, ждемсъ 10b еще течет, 126mb в 18 28 при запуске с расширениями в прост... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.4, Lain_13, 21:39, 26/01/2012 [^] [ответить] [смотреть все]  
  • +4 +/
    А где она у вас падает? А то у меня почему-то не падает.
     
     
  • 4.6, filosofem, 23:48, 26/01/2012 [^] [ответить] [смотреть все]  
  • +2 +/
    Где-где, в венде. =)
     
     
  • 5.33, paulus, 18:43, 28/01/2012 [^] [ответить] [смотреть все]  
  • +2 +/
    > Где-где, в венде. =)

    у вас может и в винде, у меня только линукс

     
  • 4.7, ILYA INDIGO, 01:54, 27/01/2012 [^] [ответить] [смотреть все]  
  • +/
    Час работы и память за пол гига, часа 3 и уже за гиг, вчера заснул ночью после р... весь текст скрыт [показать]
     
     
  • 5.23, Lain_13, 17:06, 27/01/2012 [^] [ответить] [смотреть все]  
  • +/
    http www youtube com watch v aHF5uoonR-c У меня что в винде, что в Убунту 12я ... весь текст скрыт [показать]
     
     
  • 6.27, ILYA INDIGO, 17:49, 27/01/2012 [^] [ответить] [смотреть все]  
  • +/
    12-ая не 9-ая У меня 11-ая аврора то же работала стабильно, не считая того что ... весь текст скрыт [показать]
     
     
  • 7.30, Lain_13, 01:05, 28/01/2012 [^] [ответить] [смотреть все]  
  • +/
    Ну тема начиналась кагбэ с жалобы на 12ю Враньё На ftp мозиллы доступна как 32... весь текст скрыт [показать]
     
     
  • 8.34, paulus, 18:48, 28/01/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    там и брал работает, но сильно падуч сам браузер, причин не знаю даже закрытие... весь текст скрыт [показать]
     
  • 8.40, ILYA INDIGO, 19:48, 29/01/2012 [^] [ответить] [смотреть все]  
  • +/
    Что то НЕ нащёл я тут 11-ой авроры А nigtly она как миниум, без локализации, чт... весь текст скрыт [показать]
     
  • 8.41, ILYA INDIGO, 19:52, 29/01/2012 [^] [ответить] [смотреть все]  
  • +/
    Тема начиналась с просьбы не отвлекаться на второстепенные вещи и поскорее перев... весь текст скрыт [показать]
     
  • 8.42, ILYA INDIGO, 19:57, 29/01/2012 [^] [ответить] [смотреть все]  
  • +/
    Да это расширение, и оно в менеджере расширений отмечено как совместимое и рабоч... весь текст скрыт [показать]
     
  • 5.24, Xasd, 17:13, 27/01/2012 [^] [ответить] [смотреть все]  
  • +/
    а plugin-conteiner солько занимал на утро или он был заранее отключён через abo... весь текст скрыт [показать]
     
     
  • 6.26, ILYA INDIGO, 17:44, 27/01/2012 [^] [ответить] [смотреть все]  
  • +/
    Не смотрел, хотя если сам firefox был уже в ауте, то логично предположить что pl... весь текст скрыт [показать]
     
     
  • 7.32, Аноним, 02:03, 28/01/2012 [^] [ответить] [смотреть все]  
  • –1 +/
    Вот скажите, что я делаю не так что у меня он за 2 недели как жрал гиг на типово... весь текст скрыт [показать]
     
     
  • 8.35, paulus, 18:52, 28/01/2012 [^] [ответить] [смотреть все]  
  • +1 +/
    с чистым тоже самое и about memory занят сайтами которые как полдня были закрыты... весь текст скрыт [показать]
     
  • 8.43, ILYA INDIGO, 20:20, 29/01/2012 [^] [ответить] [смотреть все]  
  • +/
    Ну вы батенька и Петросян По вашему гиг для браузера это нормально 1 Держат... весь текст скрыт [показать]
     
     
  • 9.44, aborland, 11:51, 31/01/2012 [^] [ответить] [смотреть все]  
  • +/
    Батенька, не пользуйте нетбуки с маленькой памятью Я давно пришел к выводу что ... весь текст скрыт [показать]
     
  • 5.31, Аноним, 02:01, 28/01/2012 [^] [ответить] [смотреть все]  
  • +/
    А где был OOM killer Пиво пил ... весь текст скрыт [показать]
     
     
  • 6.39, ILYA INDIGO, 19:42, 29/01/2012 [^] [ответить] [смотреть все]  
  • +/
    Вот честно говоря не знаю, может быть его у меня в openSUSE по дефолту вообще не... весь текст скрыт [показать]
     
  • 1.2, sphericalhorse, 21:18, 26/01/2012 [ответить] [смотреть все]  
  • –11 +/
    Правильно! Вместо того, чтобы хардкорно лечить браузер, давайте его кастрируем!
     
     
  • 2.22, Xasd, 16:57, 27/01/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    нет блин давайте его не кастрируем что коррекнее былобы назвать вырежем оп... весь текст скрыт [показать] [показать ветку]
     
  • 1.5, Аноним, 22:28, 26/01/2012 [ответить] [смотреть все]  
  • +/
    А что, неплохо. Получается дедупликация объектов в памяти.
     
  • 1.9, evgeny_t, 04:12, 27/01/2012 [ответить] [смотреть все]  
  • +/
    это пц
    они держали разные вебсайты в одной области памяти ?
    кто же у них головой думает ?
     
     
  • 2.10, Дмитрий, 09:16, 27/01/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +6 +/
    В браузерах издавна так было. Это со времен хрома пошли эти виртуализации, "каждой сущности - процесс" и т.д. Так что ваше удивление удивительно.
     
  • 2.12, АнониМ, 11:04, 27/01/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Так все всегда делали и только с очень недавнего времени перестали Это позволял... весь текст скрыт [показать] [показать ветку]
     
  • 1.11, Аноним, 09:42, 27/01/2012 [ответить] [смотреть все]  
  • +2 +/
    я правильно понимаю, что потоки станут значительно тяжелее раз надо весь рант... весь текст скрыт [показать]
     
     
  • 2.13, АнониМ, 11:05, 27/01/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Да и серьёзно. см. Гугл браузер.
     
     
  • 3.15, Hugo Reyes, 12:02, 27/01/2012 [^] [ответить] [смотреть все]  
  • +/
    тока у гугл браузера весь рантайм включая то, что у мозиллы разбросано по разны... весь текст скрыт [показать]
     
     
  • 4.17, Crazy Alex, 15:08, 27/01/2012 [^] [ответить] [смотреть все]  
  • +/
    А чего ради оно должно заново с диска читаться Ну будет создаваться новый объек... весь текст скрыт [показать]
     
  • 2.14, botman, 11:08, 27/01/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    потоки теперь будут рантаймами, а рантайм станет процессом если читать оригинал,... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.18, Crazy Alex, 15:09, 27/01/2012 [^] [ответить] [смотреть все]  
  • +/
    Процесс с потоком не путайте, пожалуйста.
     
  • 2.19, Crazy Alex, 15:14, 27/01/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    В оригинальной статье говорят, что такой вариант наоборот экономит память
     
     
  • 3.37, Аноним, 19:19, 29/01/2012 [^] [ответить] [смотреть все]  
  • +/
    Элементарная логика подсказывает, что в статье выдают желаемое за действительное... весь текст скрыт [показать]
     
  • 1.20, Anon2k, 15:15, 27/01/2012 [ответить] [смотреть все]  
  • +/
    >SpiderMonkey больше не будет распараллеливать работу

    Зато вон как звонко кукарекали про Rust, про МЕГАГИТЛЕРМНОГОПОТОЧНОСТЬ. Докукарекались.

     
     
  • 2.25, h31, 17:31, 27/01/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Так то было про DOM.
     
  • 1.21, Xasd, 16:40, 27/01/2012 [ответить] [смотреть все]  
  • +3 +/
    поменяйте заголовок новости.. сенсационная желтезна какаято!

    не "Используемый в Firefox JavaScript-движок будет работать только в однопоточном режиме"

    а [например] "Рефакторинг многопоточной модели реализации Javascript в Firefox"

    ....ато так написали заголовок как будтобы Firefox деградирует :-D

    # p.s.: хотя с другой стороны -- получился "заголовок-детектор". можно определять кто из комментаторов читает полностью новость, а кто только заголовок :-D

     
     
  • 2.38, Аноним, 19:22, 29/01/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Да, надо было написать Firefox опять пытается повторить подвиги Chrome - ждите ... весь текст скрыт [показать] [показать ветку]
     
  • 1.28, Sauron, 22:19, 27/01/2012 [ответить] [смотреть все]  
  • +/
    И на винде с её убогими тормозными процессами станет весело.
     
     
  • 2.29, Crazy Alex, 23:09, 27/01/2012 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    А новость лучше таки читать. А еще лучше - еще и оригинал. Речь всего лишь о том, что различные JS-потоки будут взаимодействовать по схеме share-nothing, в рамках одного процесса.
     

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


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor