The OpenNET Project / Index page

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

15.05.2014 23:31  Для WebKit реализован JIT-компилятор на основе наработок LLVM

Разработчики браузерного движка WebKit представили FTL (Fourth Tier LLVM), новый режим работы JIT-компилятора, использующий оптимизатор LLVM для генерации эффективного машинного кода. FTL оценивается как стабильный и активирован по умолчанию компанией Apple для OS X и iOS. Использование оптимизатора LLVM позволило применить для JavaScript методы изощрённой оптимизации, ранее используемые только для компилируемых языков, таких как C++ и Objective-C. По сравнению с ранее доступным в WebKit JIT-компилятором DFG (Data Flow Graph), FTL в среднем обеспечивает прирост производительности на 35%. Наибольшая эффективность FTL наблюдается для длительно выполняющихся web-приложений, а также кода, использующего расширение Asm.js.

FTL рассматривается как JIT-компилятор третьей ступени и активируется только для достаточно активно выполняемого кода. Система оптимизации выполнения JavaScript в WebKit имеет многоуровневую структуру, переход на каждый следующий уровень оптимизации осуществляется при выполнении определённых условий, при которых целесообразно применять более ресурсоёмкие, но и боле эффективные, методы оптимизации. В частности, вначале JavaScript выполняется с использованием интерпретатора LLInt (Low Level Interpreter), но если накоплена статистика, что JavaScript-функция вызвана более 6 раз или цикл прокручен более 100 раз, запускается первая стадия дополнительной оптимизации, при которой используется компилятор Baseline JIT.

В процессе выполнения кода, сгенерированного Baseline JIT накапливается дополнительная статистика и если JavaScript-функция вызвана более 66 раз или цикл прокручен более 1000 раз запускается более эффективный компилятор DFG JIT, обеспечивающий более глубокую оптимизацию. Если Baseline JIT позволяет добиться увеличения скорости выполнения JavaScript-кода в 10 раз, по сравнению с интерпретатором, то прирост скорости после применения DFG JIT составляет 30 раз. Ценой ускорения выполнения JavaScript-кода является большие процессорные ресурсы, необходимые для работы оптимизатора. DFG JIT генерирует код достаточно медленно, поэтому его использование целесообразно только для активно выполняемого кода.

В свою очередь, FTL, требует ещё больше ресурсов, но выдаёт более эффективный машинный код (в 40 раз быстрее интерпретатора), адаптированный к особенностям работы web-приложения, и использует низкоуровневые оптимизации, например, производит размещение наиболее востребованных значений в процессорных регистрах. При работе FTL используется накопленная в процессе работы DFG JIT статистика, дающая информацию о типах переменных. Так как действия на данной стадии оптимизации во многом повторяют методы, используемые при компиляции C и C++, решено воспользоваться существующими генератором кода и оптимизатором, развиваемыми в рамках проекта LLVM. При этом FTL применяется только для функций, суммарное время выполнение которых превысило 10 мс. Оптимизация производится в асинхронном режиме - FTL запускается в отдельной нити, до завершения которой продолжает выполняться код, сформированный на стадии DFG JIT.



  1. Главная ссылка к новости (https://www.webkit.org/blog/33...)
  2. OpenNews: Первый предварительный выпуск Qt WebEngine, переведённый на браузерный движок Blink
  3. OpenNews: Компания Google представила Blink, форк движка WebKit
  4. OpenNews: Доступен WebKitGTK+ 2.4.0
Лицензия: CC-BY
Тип: К сведению
Ключевые слова: web, jit, javascript
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, Аноним, 23:48, 15/05/2014 [ответить] [смотреть все]
  • –10 +/
    После демарша гугла, эпл начинает потихоньку открывать разработки Вообще, несмо... весь текст скрыт [показать]
     
     
  • 2.6, Аноним, 00:35, 16/05/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +16 +/
    Эй парень, они взяли другой проект с открытым исходным кодом, поэтому не имеют право закрывать его. А именно KHTML из Konqueror. В те годы всему миру было начихать на технические превосходства веб-движков, так как у 99% всё равно IE5/IE6. Поэтому интересную разработку никто не замечал. И тут пришла Apple и сделала на его основе Webkit. Именно поэтому Konqueror 4.3 KHTML заменили на Webkit. Это была эволюция, а не как с Opera 12.
     
     
  • 3.15, Константавр, 11:51, 16/05/2014 [^] [ответить] [смотреть все]  
  • +2 +/
    Блеен Прям в сердце ёкнуло, вспомнился Konqueror, было же время А не у нег... весь текст скрыт [показать]
     
     
  • 4.16, iZEN, 12:09, 16/05/2014 [^] [ответить] [смотреть все]  
  • –2 +/
    Первые вкладки появились где-то в 1998-99гг в Mozilla Firebird v 0 97 ... весь текст скрыт [показать]
     
     
  • 5.19, Andrey Mitrofanov, 14:48, 16/05/2014 [^] [ответить] [смотреть все]  
  • +3 +/
    iZEN даже при чтении википепии вслух врёт Бе-е-едный Не первые, не в морзиле, ... весь текст скрыт [показать]
     
     
  • 6.22, iZEN, 19:20, 16/05/2014 [^] [ответить] [смотреть все]  
  • –2 +/
    Видишь, как интересно Я не нашёл фактоидов, а ты нашёл ... весь текст скрыт [показать]
     
  • 5.34, arisu, 15:25, 17/05/2014 [^] [ответить] [смотреть все]  
  • +1 +/
    opera смотрит на тебя как на изю ... весь текст скрыт [показать]
     
  • 4.18, rshadow, 14:44, 16/05/2014 [^] [ответить] [смотреть все]  
  • +/
    Им не надо втолковывать Идеалогия винды - многооконность на одном рабочем столе... весь текст скрыт [показать]
     
     
  • 5.20, rob pike, 16:54, 16/05/2014 [^] [ответить] [смотреть все]  
  • +/
    Какие новости Вообще-то у них изначально был http en wikipedia org wiki Multi... весь текст скрыт [показать]
     
  • 2.11, Аноним, 06:52, 16/05/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • –2 +/
    А чем эппл принципиально от гугли отличается ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.14, 1, 10:45, 16/05/2014 [^] [ответить] [смотреть все]  
  • +10 +/
    Одни причиняют добро, другие наносят пользу.
     
     
  • 4.17, Константавр, 12:20, 16/05/2014 [^] [ответить] [смотреть все]  
  • +3 +/
    Шуточки Чойта я не слышал про Эппл Саммнр оф Коде У Эппла только Кто похвали... весь текст скрыт [показать]
     
     
  • 5.25, Аноним, 20:25, 16/05/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    Эппл как минимум активно контрибьютит в LLVM Clang, Webkit и BSD libc и cups, не... весь текст скрыт [показать]
     
     
  • 6.29, Константавр, 11:49, 17/05/2014 [^] [ответить] [смотреть все]  
  • +/
    В этих проектах Эппл заинтересован непосредственно Тоже самое Андроид, Хромиуи ... весь текст скрыт [показать]
     
     
  • 7.30, Куяврег, 13:12, 17/05/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    Как бы это и есть то самое впрягли корпорастов работают на себя - работают на ... весь текст скрыт [показать]
     
     
  • 8.33, Константавр, 15:16, 17/05/2014 [^] [ответить] [смотреть все]  
  • +/
    В том и отличие Google Summer Of Code, Гугл в данном случае является спонсором и... весь текст скрыт [показать]
     
     
  • 9.37, rob pike, 07:45, 18/05/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    Гугл, разумеется, не является в полном смысле меценатом - GSoC по сути это очень... весь текст скрыт [показать]
     
  • 5.31, Куяврег, 13:16, 17/05/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    Так ещё и не вечер Тут же вопрос стоит именно так либо опенсорц даёт эффективн... весь текст скрыт [показать]
     
     
  • 6.32, Константавр, 14:50, 17/05/2014 [^] [ответить] [смотреть все]  
  • +/
    Вопрос стоял Так что отпрыгни ... весь текст скрыт [показать]
     
  • 1.2, Аноним, 23:51, 15/05/2014 [ответить] [смотреть все]  
  • +/
    время бурного роста абы как, прошло, наступило время оптимизации во многих прое... весь текст скрыт [показать]
     
  • 1.3, Аноним, 00:28, 16/05/2014 [ответить] [смотреть все]  
  • +6 +/
    бгг, аббревиатура faster than light совершенно незаметна
     
  • 1.4, yaleks, 00:31, 16/05/2014 [ответить] [смотреть все]  
  • +2 +/
    Мир сходит с ума - сначала перегоняем в JS при помощи LLVM, а затем им же JS в машинный код.
     
  • 1.10, Аноним, 06:41, 16/05/2014 [ответить] [смотреть все]  
  • +1 +/
    Блин, поздно Qt уже на Blink же переходить стал и неизвестно сколько он операти... весь текст скрыт [показать]
     
     
  • 2.12, Аноним, 08:24, 16/05/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +1 +/
    Продолжай доделывать QtWebkit
    У тебя еще есть время
     
  • 2.21, Аноним, 18:03, 16/05/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • –1 +/
    Оно и к лучшему Этот полупроприетарный LLVM в Qt нафиг не упёрся ... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.23, iZEN, 19:23, 16/05/2014 [^] [ответить] [смотреть все]  
  • –2 +/
    Правильно На С давно уже есть JIT 8212 Sun HotSpot http ru wikipedia o... весь текст скрыт [показать]
     
     
  • 4.26, rob pike, 21:12, 16/05/2014 [^] [ответить] [смотреть все]  
  • +/
    Ладно б ты еще про Zing упомянул, говоря про приличный JIT Который, кстати, на ... весь текст скрыт [показать]
     
  • 3.24, Аноним, 20:12, 16/05/2014 [^] [ответить] [смотреть все]  
  • +/
    А ничего, что у конкурента тож BSD licence http changelogs ubuntu com changel... весь текст скрыт [показать]
     
  • 1.28, Аноним, 06:56, 17/05/2014 [ответить] [смотреть все]  
  • +/
    LuaJIT уже рвёт? (без asm.js-мухлежа)
     
     
  • 2.35, arisu, 15:37, 17/05/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    да оно и с мухлежом не особо а если сравнить размер кодовой базы 8230 нет, лу... весь текст скрыт [показать] [показать ветку]
     
  • 2.36, rob pike, 07:37, 18/05/2014 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Для WebKit реализован JIT-компилятор на основе наработок LLV...... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.38, arisu, 15:23, 18/05/2014 [^] [ответить] [смотреть все]  
  • +/
    осталось найти того, кто это сделает СуперМайк не заинтересован ... весь текст скрыт [показать]
     
     
  • 4.39, rob pike, 15:27, 18/05/2014 [^] [ответить] [смотреть все]  
  • +/
    Заинтересован, но его не зовут Потому злорадствует ... весь текст скрыт [показать]
     
     
  • 5.40, arisu, 15:32, 18/05/2014 [^] [ответить] [смотреть все]  
  • +/
    > Заинтересован, но его не зовут.

    я имел в виду «не заинтересован делать это бесплатно». а денег на jsjit корпорасты ему не несут, предпочитая оные деньги весело просирать.

    впрочем, я бы вообще все попытки сделать jit'ы для js уничтожал бы вместе с авторами.

     
     
  • 6.41, rob pike, 04:09, 19/05/2014 [^] [ответить] [смотреть все]  
  • –1 +/
    >все попытки сделать jit'ы для js уничтожал бы вместе с авторами

    Потому что технологии бывают вредные, полезные и антинародные, да?

    > Кибернетика является, таким образом, реакционной механистической теорией, стремящейся отбросить современную научную мысль, основанную на материалистической диалектике, далеко вспять — к изжитой и опровергнутой более ста лет назад механистической философии.
    > — «Наука современных рабовладельцев», «Наука и жизнь», июнь 1953, стр.42

     
     
  • 7.42, arisu, 09:07, 19/05/2014 [^] [ответить] [смотреть все]  
  • +/
    >>все попытки сделать jit'ы для js уничтожал бы вместе с авторами
    > Потому что технологии бывают вредные, полезные и антинародные, да?

    нет. потому что дебилы-хипстеры пытаются впихнуть невпихуемое.

     
     
  • 8.43, rob pike, 19:06, 19/05/2014 [^] [ответить] [смотреть все]  
  • +/
    Так ведь по просьбам трудящихся. Всё для рабочего человека.
     

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


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