Технология asm.js для Mozilla Firefox приравнялась по скорости с машинным кодом

25 Декабрь 2013

С момента выпуска Firefox 22 этим летом, компания Mozilla выделила в JavaScript особое подмножество – asm.js, с помощью которого удалось значительно ускорить исполнение сложных кодов в JavaScript-программах, скомпилированных на C++. Ускорение является заслугой модуля OdinMonkey, внедренного в JavaScript-движок браузера. Как следует из официального заявления разработчиков Mozilla, они сумели значительно увеличить скорость обработки кода asm.js.

В Google Chrome работа с высокопроизводительными веб-приложениями (например, онлайн играми), возложена на технологию Native Client, с которой в браузере выполняется машинный код приложений. В Mozilla решили пойти другой дорогой и исполняют JavaScript на скоростях, близких к машинному коду, в чем им помогает особый компилятор Emscripten. В обоих случаях есть свои преимущества и недостатки, однако результат достигается один и тот же: разработчики получают возможность изначально писать код в C или C++ и после этого компилировать его для исполнения в браузере.

Как сообщается в блоге команды разработчиков Mozilla, за прошедшее с момента выпуска Firefox 22 время, они добились такого повышения скорости обработки JavaScript, что он всего лишь в полтора раза уступает скорости машинного кода. Во многом результат достигнут благодаря небольшим изменениям в компиляторе Emscripten и asm.js. Также в браузере Mozilla за это время был существенно оптимизирован процесс обработки операций с плавающей запятой.

В перспективе разработчики планируют внедрить дополнительные улучшения для работы связки JavaScript и Emscripten, за счет которых они еще сильнее сократят отставание по скорости от машинного кода.

На сегодняшний день asm.js является собственной разработкой компании Mozilla. И хотя разработчики Google хорошо осведомлены о возможностях этой технологии, с ее внедрением в Chrome никто не спешит: они ограничились лишь добавлением технологии в тестовый пакет Octane. У кода asm.js есть одна интересная особенность – он легко выполняется на любых современных движках JavaScript, но только делает это несколько медленнее, чем в Mozilla Firefox.

Большая часть онлайн-игр создается с движками, написанными на C или C++, поэтому код asm.js сконцентрирован, первым делом, на этой сфере развлечений. В свое время эту технологию высоко оценили специалисты Epic Games, которые даже выпустили для демонстрации ее возможностей исполняемую в браузере игру Epic Citadel. Для работы последней не нужны никакие дополнения: хватает поддержки WebGL, JavaScript и HTLM5.


Скопируйте этот код и вставьте его в свой сайт или блог (HTML)
Скопируйте этот код и вставьте его на форум (BBcode)
Кликните, если это возможно
Комментариев нет.