The OpenNET Project / Index page

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

Для JavaScript-движка Firefox создается новый JIT-компилятор

28.02.2010 10:12

В рамках проекта JägerMonkey разработчики Mozilla ведут работу по интеграции в JavaScript движок SpiderMonkey легкого контекстно-ориентированного многопоточного JIT-компилятора. Для формирования на лету машинного кода в JägerMonkey решено задействовать открытый ассемблер Nitro JavaScript JIT, созданный компанией Apple для WebKit. Nitro распространяется под совместимой с Firefox лицензией и написан на языке C++, что упрощает процесс его интеграции. Код Nitro уже адаптирован для запуска с использованием системы сборки и набором библиотек Mozilla.

Вторым ключевым компонентом JägerMonkey является работающий на более высоком уровне JIT-компилятор методов, созданием которого занимаются разработчики Mozilla. В будущем, после проведения первичной стадии тестирования, работа будет сосредоточена на интеграции JägerMonkey с JIT-подсистемой движка TraceMonkey. По средним оценкам, в текущем виде JIT-компилятор JägerMonkey позволяет увеличить производительность выполнения JavaScript на 18%, после доработки планируется увеличить производительность еще на 10%. Особенно новый JIT эффективен для оптимизации регулярных выражений.

Работа JIT-компилятора в движке TraceMonkey, который уже используется в последних версиях Firefox, построена на идее "tracing"-оптимизации, суть которой в сохранении плана выполнения скрипта с последующим использованием бинарного кода при выполнении подобных блоков. При этом происходит преобразование циклов и сложных методов в вид линейного потока инструкций. Подобный метод позволяет значительно ускорить выполнение определенных операций, например показывает девятикратный прирост производительности в тесте math-cordic из пакета SunSpider. При работе реального кода, специально не оптимизированного для развертывания в линейное представление инструкций, эффективность "tracing"-оптимизации значительно снижается. Например, тест "date-format-tofte" в котором есть вызов "eval" работает быстрее всего на 5%.

Некоторые разработчики сравнивают TraceMonkey с ракетным ускорителем, позволяющим обеспечить значительное ускорение, но в коротком промежутке времени. Для скриптов с большим числом разветвлений, использованием "eval" и комбинированием разных типов (для каждой комбинации типов и каждого ветвления создается свой трассировочный план выполнения, если комбинаций 1000, то и планов будет 1000), эффективность TraceMonkey оставляет желать лучшего. Предлагаемый к реализации новый JIT-компилятор менее эффективен для некоторых ситуаций, но позволяет ускорить выполнение всех программ на JavaScript, не требуя специального оформления кода. При комбинировании обоих подходов в одном JavaScript-движке можно достичь действительно значительного ускорения при выполнении любых скриптов.

  1. Главная ссылка к новости (http://blog.mozilla.com/dmande...)
  2. OpenNews: Для WebKit представлен новый JavaScript движок
  3. OpenNews: В Firefox 3.1 производительность некоторых JavaScript операций возрастет в 20-40 раз
  4. OpenNews: Реализация Flash на языке JavaScript и Web-сервис для преобразования FLV в Ogg
  5. OpenNews: Тестирование поддержки QML в среде разработки Qt Creator
  6. OpenNews: Opera обогнал другие браузеры по производительности JavaScript-движка
Лицензия: CC-BY
Тип: К сведению
Короткая ссылка: https://opennet.ru/25608-JIT
Ключевые слова: JIT, javascript, firefox
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (47) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, аноним (?), 11:57, 28/02/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    бла-бла-бла, много слов и обещаний, на деле фейрфокс всё ещё на 4-м месте (после Хрома, Сафари и 10,50 беты Оперы)
     
     
  • 2.4, аноним (?), 12:42, 28/02/2010 [^] [^^] [^^^] [ответить]  
  • +7 +/
    Да хоть на десятом, кому какая разница, что оно отстает от проприетарщины и троянов на какие-то проценты, когда производительность банально достаточна. Важнее то, что по функциональности все перечеленные поделки с FF близко не сравнятся. Хотя конечно то, что FF ускоряют ЕЩЕ больше, ни в коем слуае не плохо.
     
     
  • 3.13, Below (ok), 20:18, 28/02/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ну и чем опера или хром/хромиум уступают ему в функциональности, перечислите хотя бы пару-тройку весомых позиций, чтобы не быть голословным
     
     
  • 4.14, anonimous (?), 22:34, 28/02/2010 [^] [^^] [^^^] [ответить]  
  • +/
    покажите где в хоромоноге mouse gestures, adblock plus и noscript хотябы, тогда дальше поговорим, жопера приниципиально не интересует ибо работать в ней все равно что на тазе ездить.
     
     
  • 5.17, Below (ok), 05:06, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    >adblock plus

    в _https://chrome.google.com/extensions/
    _http://www.chromeextensions.org/appearance-functioning/adblock/

    >mouse gestures

    _http://www.chromeplugins.org/extensions/chrome-gestures-google-chrome-mouse-g

    >noscript

    В качестве расширения может и нет, но вот статья, которая может в этом помочь
    _http://techie-buzz.com/browsers/disable-javascript-images-cookies-in-google-c

    Может для вин платформ различия в работе этих трех браузеров невелики, то для unix ваш горячо любимый фф уступает достаточно, чтобы от него отказаться.

    >ибо работать в ней все равно что на тазе ездить.

    Это Ваше личное субъективное мнение, которое лучше держать при себе

     
     
  • 6.20, AlexGor (??), 12:18, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    adblock в хромом работает криво, поскольку не имеет доступа к dom. срабатывает не до того, как начинается рендеринг страницы, а после.

    также отсутствуют настройки для принудительного использования своих шрифтов на страницах.

    ну и "инструменты разработчика" не заменяют firebug.

    все эти факторы в совокупности делают хром довольно неудобным.

     
  • 6.22, аноним (?), 14:17, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Может для вин платформ различия в работе этих трех браузеров невелики, то для unix ваш горячо любимый фф

    И чем же такое есть в unix, из-за чего вдруг под ним FF отличается от других браузеров значительнее чем в винде?

    > уступает достаточно, чтобы от него отказаться.

    Приедите-ка несколько примеров, чтобы не быть голословным.

     
     
  • 7.29, Crazy Alex (??), 22:59, 02/03/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Тормозностью файрфокса в никсах, если вы не знали - и весьма заметной.
     
     
  • 8.30, аноним (?), 12:48, 03/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Не знал, потому что никакой тормозности никогда не видел ... текст свёрнут, показать
     
     
  • 9.31, merlyn (?), 13:53, 03/03/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Повезло Мне лично давно пришлось сменить файрфокс на оперу, а теперь - на оказа... текст свёрнут, показать
     
     
  • 10.33, аноним (?), 21:33, 03/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Я в свое время сменил оперу на FF по той же причине Это был еще FF 2, с тех пор... текст свёрнут, показать
     
     
  • 11.35, merlyn (?), 10:14, 04/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Да, я тоже, кстати Только с тех пор FF замедлился в разы, а так - всё тоже само... текст свёрнут, показать
     
     
  • 12.36, аноним (?), 14:00, 04/03/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Говорите всегда только за себя - я, если бы не сравнивал, не говорил У меня мен... текст свёрнут, показать
     
     
  • 13.38, merlyn (?), 14:49, 04/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Я открываю примерно одно и тоже Мои вкусы и пристрастия от браузера не меняются... текст свёрнут, показать
     
     
  • 14.40, аноним (?), 12:47, 05/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Мда, действительно Нельзя с вами конструктивно общаться, так и будете брызгая с... текст свёрнут, показать
     
     
  • 15.42, merlyn (?), 12:52, 05/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Да нет же Это вы доказываете, что если у вас не тормозит - значит ни у кого не ... текст свёрнут, показать
     
     
  • 16.44, аноним (?), 16:54, 06/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    А вы доказываете что если у вас тормозит, значит у всех тормозит Поэтому нет ни... текст свёрнут, показать
     
  • 4.18, _umka_ (??), 10:56, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    хром/хромиум не в состоянии открыть docs.google.com - а FF может
     
  • 4.21, whip (?), 13:07, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    лично мне в хроме не хватает нормальной работы с кэшем (если он там вообще есть)
     
  • 4.23, аноним (?), 14:29, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну и чем опера или хром/хромиум уступают ему в функциональности, перечислите хотя
    >бы пару-тройку весомых позиций, чтобы не быть голословным

    Лично мне adblock, noscript, xpather, greasemonkey, foxyproxy, live http headers, permit cookies, user agent switcher, web developer, firebug, vimpertor.

    Можно перечислить вообще весть addons.mozilla.org, ибо кому-то одно надо, кому-то другое. Вы лучше приведите аргументов за переход на chrome.

     
  • 2.12, svchost (ok), 17:58, 28/02/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Однако, почему-то, chrome нагружает процессор в несколько раз больше всех этих браузеров. Быстрее всех работает Опера. А удобнее с Firefox.
     
     
  • 3.24, аноним (?), 14:32, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Однако, почему-то, chrome нагружает процессор в несколько раз больше всех этих браузеров.
    >Быстрее всех работает Опера. А удобнее с Firefox.

    5 или 10% загрузки процессора - мне лично совершенно не важно. Про проприетарную оперу говорить вообще несерьезно, про chrome если только в инкарнации iron, но до FF ему как до луны пешком - лучше выберу arora.

     
     
  • 4.25, smb (?), 18:24, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Как обычно, фанатиков отличает любовь к голословным утверждениям, а не объективная оценка программы, и им даже в голову не приходит, что то, что им не нравится, может успешно пользоваться другими....

    Чесслово, достали уже эти слова про то, что всё "проприетарное" - УГ. Не юзайте тогда x264, mp3...

     
     
  • 5.27, аноним (?), 18:51, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > Как обычно, фанатиков отличает любовь к голословным утверждениям, а не объективная оценка программы, и им даже в голову не приходит, что то, что им не нравится, может успешно пользоваться другими....

    Вы сами сейчас кроме голословного утверждения ничего и не сказали. Проприетарное ПО не отвечает совершенно базовым требованиям в современном мире, как-то: установка из репозитория, доступность на любой архитектуре, верифицируемость и изменяемость. Вы, "не фанатики" не замечаете или не хотите замечать неудобств своей любимой проприетарщины, либо просто от компьютера вам нужна печатная машинка и вконтактик. В обоих случаях на объективность вы никак не тянете. Можете сидеть на i386, потому что под amd64 вам не удосужились выкатить флеш (а что еще актуальнее, будете использовать ноутбуки на убогих атомах, когда есть ARM который работает в 5 раз дольше), сильно удивляться когда у вас деньги с кредитки пропадут, или начнет приходить спам где от ваших родственников, потому что у ваших благодетелей сперли очередную базу, и будете тыкать мышкой 150 раз, вместо одного, потому что никакой проприетарщик не будет только ради вас автоматизировать нужно вам действие. Я все эту кухню знаю и через все это проходил, больше не хочу. Нормальный человек ППО использовать не будет, и о фанатизме здесь могут говорить только глупцы.

    > Чесслово, достали уже эти слова про то, что всё "проприетарное" - УГ.

    Вам сколько лет? Сын моей знакомый школьного возраста то же самое говорил - "достали уже со своими советами сделать прививку", сейчас в больнице с осложнениями после гриппа. Думайте головой почаще.

    > Не юзайте тогда x264, mp3...

    Ничего проприетарного в них нет. Все кодеры и декодеры - СПО.

     
     
  • 6.28, merlyn (?), 22:02, 02/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    > и будете тыкать мышкой 150 раз, вместо одного, потому что никакой проприетарщик не будет только ради вас автоматизировать нужно вам действие

    ДА-да. А вот СПОшники никогда не бросают проект на полдороги и тут же выполняют все просьбы юзеров.

     
     
  • 7.32, аноним (?), 15:20, 03/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >ДА-да. А вот СПОшники никогда не бросают проект на полдороги и тут
    >же выполняют все просьбы юзеров.

    Перечитайте мой пост и не пишите херни.

     
     
  • 8.34, merlyn (?), 10:06, 04/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Предлагаю сделать ровно тоже самое Раз вы уловили сарказм - значит согласны, ви... текст свёрнут, показать
     
     
  • 9.37, аноним (?), 14:14, 04/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Вы ничего не написали, чтобы вас перечитывать Конечно несерьезно, потому что ПП... текст свёрнут, показать
     

  • 1.3, Vitto74 (ok), 12:02, 28/02/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Молодцы Mozilla - выкладываются, чтобы конкурентов догнать.
     
     
  • 2.5, Zenitur (?), 12:53, 28/02/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ужас, сколько же этих JIT-компиляторов уже есть?! Неужели кроме JavaScript больше нечего оптимизировать релиз за релизом?! Нет - ему отдаётся первостепенное значение вот уже 1,6 релизов из 3.6.
     
     
  • 3.8, Аноним (-), 16:06, 28/02/2010 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Javascript занимает важное место в xul движке. И увеличение производительности в javascript очень важный пункт.
     

  • 1.6, Анонима (?), 14:44, 28/02/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Как корыто назовешь так оно и поплывет. у Гугла просто и лаконично - V8.
    А эти все на макаках концентрируются.
     
     
  • 2.10, use (?), 16:39, 28/02/2010 [^] [^^] [^^^] [ответить]  
  • +/
    То есть название JS-движка для Вас является приоритетом в выборе браузера?
    Так называйте хоть J8, его суть не поменяется. Как был тем же движком, тем же и останется.
     

  • 1.7, Pilat (ok), 15:26, 28/02/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Как-то всё не в том направлении идёт. Вместо того, чтобы транслировать в машинный код, улучшается план выполнения.
     
     
  • 2.9, Аноним (-), 16:08, 28/02/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Как-то всё не в том направлении идёт. Вместо того, чтобы транслировать в
    >машинный код, улучшается план выполнения.

    Цитата: "Не поверишь, проц умеет исполнять только машинный код"

     
     
  • 3.11, Pilat (ok), 16:53, 28/02/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    A Вы какой хотели в него засунуть? Напрямую JavaScript ?
     

  • 1.15, unknown (??), 00:09, 01/03/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    лисе не обогнать хром, там всё переписывать надо, а не обещать...
     
     
  • 2.16, Knuckles (ok), 00:26, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    И где ты нахватался этого?
     
     
  • 3.19, qwer (??), 11:38, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Не поверишь, но у меня в Fedora, и на работе и дома, ФФ сливает по производительности хрому, к моему сожалению....
     
     
  • 4.26, Knuckles (ok), 18:31, 01/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Я говорил вот об этом:
    >там всё переписывать надо
     

  • 1.39, Alex (??), 09:43, 05/03/2010 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Хром еще кадры скипает при рендере из JS жутко, за счет этого и быстрый. А если бы не скипал - был бы в два раза тормознее оперы.
     
     
  • 2.41, аноним (?), 12:49, 05/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Хром еще кадры скипает при рендере из JS жутко, за счет этого
    >и быстрый. А если бы не скипал - был бы в
    >два раза тормознее оперы.

    Вот хоть кто-то это заметил. +1024. Так можно сказать что де, "у меня full hd играется на первом пне", запустив mplayer с hardframedrop. В хроме эти дерганья очень заметны, тогда как FF успевает рисовать все кадры.

     
     
  • 3.43, Alex (??), 22:09, 05/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >>Хром еще кадры скипает при рендере из JS жутко, за счет этого
    >>и быстрый. А если бы не скипал - был бы в
    >>два раза тормознее оперы.
    >
    >Вот хоть кто-то это заметил. +1024. Так можно сказать что де, "у
    >меня full hd играется на первом пне", запустив mplayer с hardframedrop.
    >В хроме эти дерганья очень заметны, тогда как FF успевает рисовать
    >все кадры.

    Согласен. Но Opera все равно шустрее. А Opera 10.50 - пока что вне конкуренции, конкурирует (если можно так сказать) - только с кадроскипалкой, но там не очень честная конкуренция получается, как раз за счет этого самого скипа. ФФокс идет в одном ряду с сафари по производительности, где-то в жесткой середине, от которой как до низа (IE), так и до верха (Opera) - как до китая раком. Chrome вне классификации, по общей производительности он ближе к Safari (повыше, чем FFox), по рендеру - спасается только скипом кадров, и ближе к FFox'у.

    А по поводу холивара - на вкус и цвет все фломастеры разные. У меня все браузеры стоят, потому что готовое приходится проверять во всех.

     
     
  • 4.45, аноним (?), 16:55, 06/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Ну opera это вообще смешно. Итого - кроме FF вариантов пока нет.
     
     
  • 5.46, Alex (??), 16:56, 06/03/2010 [^] [^^] [^^^] [ответить]  
  • +/
    >Ну opera это вообще смешно. Итого - кроме FF вариантов пока нет.

    Да нет, FF - это вообще смешно. Ибо в перспективе - не менее дырявый, чем IE. Бинарные плагины - уже где-то проходили.

     
     
  • 6.47, аноним (?), 04:55, 07/03/2010 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Да-да, бинарный IE и другие бинарные недобраузеры. Неповоротливые, дырявые и в целом неюзабельные. Проходили indeed. В XXI веке проприетарщиной пользуются, я смотрю, только совсем упоротые.
     
     
  • 7.48, yet another anonim (?), 04:33, 12/09/2010 [^] [^^] [^^^] [ответить]  
  • +/
    Да вы какие-то больные люди, чесс слово Вы видимо ночью перед сном и утром пер... большой текст свёрнут, показать
     

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



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

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