Новости бизнесаСтатьиНоу ХауАналитикаДеньгиБизнес технологииКурс валют
Главная > Новости бизнеса > Hi-Tech > В Firefox 58 появится новый двухуровневый компилятор

В Firefox 58 появится новый двухуровневый компилятор

Четверг, 18 января 2018 г.

Следите за нами в ВКонтакте, Facebook'e и Twitter'e

Разработчики Mozilla сообщили о включении в состав Firefox 58, релиз которого ожидается на следующей неделе, нового компилятора, который обеспечивает компиляцию промежуточного кода WebAssembly в 10–15 раз быстрее, чем используемый до этого оптимизирующий компилятор.

На типовой рабочей станции скорость компиляции кода WebAssembly достигает 30–60 Мб в секунду, а на мобильном устройстве 8 Мб в секунду, что быстрее, чем пропускная способность большинства сетей. Особенностью нового компилятора является возможность компиляции кода по мере его загрузки. В сочетании с высокой скоростью компиляции данная особенность позволяет получать готовый код почти сразу после окончания загрузки, так как большая часть кода успевает скомпилироваться во время загрузки кода.

Потребность в компиляции по мере загрузки возникла при появлении WebAssembly, так как для обычного JavaScript операции парсинга требуют заметных ресурсов, а псевдокод WebAssembly значительно проще для декодирования и компактнее (требует передачи меньшего объёма по сети для реализации аналогичной функциональности). Ранее параллельно с загрузкой JavaScript осуществлялся парсинг, который выполнялся в параллельном потоке и формировал готовый для компиляции код к моменту окончания загрузки JavaScript, но компиляция производилась после завершения разбора.



В WebAssembly готовность для компиляции наступает значительно раньше, а фазы декодирования и компиляции могут быть разделены на отдельные потоки и выполняться параллельно. Более того, компиляция может завершиться даже раньше окончания загрузки файла wasm, так как секция с кодом в модуле расположена раньше секции с данными, и псевдокод успевает скомпилироваться ещё когда секция данных продолжает загружаться.



Суть двухуровневого компилятора заключается в наличии двух фаз: baseline, в которой приоритет отдаётся скорости компиляции в ущерб качеству оптимизации, и оптимизирующей фазы, которая выполняется достаточно медленно, но выдаёт хорошо оптимизированный код. В частности, baseline-компиляция выполняется в 10–15 раз быстрее, но генерирует код, работающий примерно в два раза медленнее.

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

Для WebAssembly и JavaScript метод вызова оптимизирующей стадии сильно отличается. Для JavaScript вторая стадия запускается спустя какое-то время после начала выполнения кода, лишь после того как накопиться определённая статистика о характере выполнения и типах данных. В WebAssembly вся необходимая информация уже имеется в псевдокоде, поэтому нет смысла затягивать с выполнением второй фазы, и, как следствие, оптимизированный код быстрее замещает собой первоначальный черновой код.

Компиляция на второй стадии выполняется в отдельном потоке, параллельно с работой кода web-приложения. Для ускорения данной стадии в новом движке Firefox осуществляется распараллеливание на уровне компиляции отдельных функций, которое позволяет разнести компиляцию на несколько потоков и задействовать все простаивающие ядра CPU. Для ещё большего ускорения работы компилятора планируется добавить систему кэширования, которая при повторном выполнении wasm-файлов позволит сразу использовать уже ранее скомпилированный и сохранённый в кэше машинный код. В Firefox 58 функциональность будет ограничена поддержкой кэширования байткода для JavaScript (ускоряет загрузку Facebook на 12%, Twitter на 5.4%, сайтов Google на 4.9%), а кэширование итогового машинного кода будет реализовано в одном из дальнейших выпусков.

Следите за нами в ВКонтакте, Facebook'e и Twitter'e


Просмотров: 356
Рубрика: Hi-Tech
(CY)

Архив новостей / Экспорт новостей

Ещё новости по теме:

13: 00
Названа точная дата начала продаж камеры Olympus Pen E-PL9 |
13: 00
Производитель чехлов подтвердил наличие трех модулей в основной камере смартфона Huawei P20 Plus |
12: 40
68% американских родителей признали себя зависимыми от мобильных устройств |
11: 40
Смартфон Oppo R15 с поддержкой 20-ваттной зарядки тоже похож на iPhone X |
11: 40
Компания Universal Display отчиталась за минувший квартал и 2017 год в целом |
11: 20
Прекращена разработка коммуникационной платформы Apache Wave |
10: 40
Светодиодные лампы должны полностью вытеснить традиционное освещение в Индии уже в 2019 году |
10: 00
Смартфон Huawei Mate 10 Pro использовали для управления автомобилем Porsche Panamera |
09: 40
Мне надоел iPhone X |
08: 20
Беспроводная зарядная станция AirPower поступит в продажу в марте |
07: 20
За полгода функция SOS в iOS 11 успела достать службу 911 |
07: 00
Apacer пополняет линейку оперативной памяти Commando новыми комплектами DDR4 |
17: 40
Четыре китайские компании поддержали стандарт Micro Four Thirds |
17: 40
Microsoft разработала VR-систему для слепых |
17: 00
На данном этапе беспилотный летательный аппарат Airbus способен продержаться в воздухе не более 10-11 минут |
16: 40
Аналитики Gartner впервые зафиксировали сокращение рынка смартфонов |
16: 40
Беспроводные наушники Apple AirPods 2 выйдут в нынешнем году и не принесут значимых новшеств |
16: 40
Как делают автомобильные шины? |
16: 00
Любители торрентов оказались под угрозой взлома |
16: 00
Студенты не замечают депрессию у соседей по общежитию |
16: 00
Volvo представила универсал V60 нового поколения |
15: 00
Видеокарты Asus Cerebrus GeForce GTX 1050 и пара GTX 1050 Ti защищены металлическими пластинами с тыльной стороны |
15: 00
Доходы трех основных поставщиков серверной памяти DRAM в прошлом квартале выросли на 14% |
14: 40
Большая часть владельцев умных акустических систем не использует и половины возможностей этих устройств |
12: 20
В OpenBSD исправлена уязвимость Meltdown. Вышло стабильное обновление микрокода Intel |
12: 00
Цифра дня: Сколько получат победители чемпионата ВКонтакте по программированию? |
12: 00
У Минобороны появились засекреченные мобильники за 115 тыс руб |
11: 40
Есть ли жизнь на Марсе: насколько близки учёные к решению этого вопроса |
10: 20
Рынок принтеров, МФУ и копиров за год сократился на 1% |
10: 20
В России за предзаказ Meizu M6s подарят Pixelphone S1 |
10: 20
По прогнозу DSCC, рынок материалов OLED у 2022 году вырастет до 2,56 млрд долларов |
Новости бизнесаСтатьиНоу ХауАналитикаДеньгиБизнес технологииКурс валют
Rating@Mail.ru
Условия размещения рекламы

Наша редакция

Обратная связь

RosInvest.Com не несет ответственности за опубликованные материалы и комментарии пользователей. Возрастной цензор 16+.

Ответственность за высказанные, размещённую информацию и оценки, в рамках проекта RosInvest.Com, лежит полностью на лицах опубликовавших эти материалы. Использование материалов, допускается со ссылкой на сайт RosInvest.Com.

Skype: rosinvest.com (Русский, English, Zhōng wén).

Архивы новостей за: 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2008, 2007, 2006, 2005, 2004, 2003