The OpenNET Project / Index page

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



"В Firefox 22 появится Asm.js, низкоуровневое высокопроизводи..."
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Подсказка: Для контроля за появлением новых сообщений - перед выходом жмите "Пометить прочитанным".
"В Firefox 22 появится Asm.js, низкоуровневое высокопроизводи..." +/
Сообщение от opennews (ok), 22-Мрт-13, 23:35 
Разработчики проекта Mozilla объявили (https://blog.mozilla.org/luke/2013/03/21/asm-js-in-firefox-n.../) об интеграции в ночные сборки Firefox оптимизирующего модуля OdinMonkey  c реализацией поддержки Asm.js (http://asmjs.org/) - низкоуровневого подмножества (http://asmjs.org/spec/latest/) языка JavaScript, позволяющего существенно увеличить производительность приложений, автоматически преобразованных в JavaScript с языков C/C++ при помощи таких инструментов, как  Emscripten (https://www.opennet.ru/opennews/art.shtml?num=35313) и  Mandreel (http://mandreel.com/). Ожидается, что поддержка Asm.js будет включена в выпуск  Firefox 22, запланированный на 26 июня.


Из отличительных черт Asm.js можно отметить поддержку строгой типизации, при которой переменные на протяжении своего жизненного цикла имеют заранее известный и не изменяемый тип. Наличие информации о типах позволяет использовать не только JIT, но и предварительную AOT-компиляцию, выполняемую для всего кода до начала его выполнения и генерирующую более простой и эффективный машинный код. При этом, в отличие от JIT-компиляции, Asm.js обеспечивает предсказуемую производительность и не зависит от сборщика мусора. В итоге, код с известной информацией о типах выполняется всего в два раза медленнее нативного приложения, написанного на C/C++. В то время как без Asm.js скомпилированное с использованием Emscripten приложение выполняется медленнее в 5 раз.

<center><a href="http://kripken.github.com/mloc_emscripten_talk/macro4b.png&q... src="https://www.opennet.ru/opennews/pics_base/0_1363977912.png" style="border-style: solid; border-color: #606060; border-width: 1px;" title="" border=0></a></center>

Достоинством Asm.js также является то, что он отлично интегрируется с существующими JavaScript-движками, не требуя подключения новой виртуальной машины или JIT-компилятора - достаточно внести небольшие оптимизацию в текущий движок JavaScript. В частности, для  SpiderMonkey подготовлен оптимизирующий модуль OdinMonkey, реализующий дополнительные техники оптимизации для Asm.js.


Подмножество JavaScript, предлагаемое в Asm.js, полностью совместимо со стандартным JavaScript и может выполняться в любых браузерах, так как вся дополнительная информация определяется в форме аннотаций (например, "x = x|0; // x : int"). Совместимость полностью сохраняется - если браузер не поддерживает Asm.js, то код выполняется как обычный JavaScript, а если поддерживает  - включается дополнительный оптимизирующий модуль, учитывающий добавленные в код аннотации.

Поддержка Asm.js уже обеспечена в Emscripten и активируется при сборке с установкой флага "ASM_JS=1". Пока код Asm.js нацелен на автоматическую генерацию, но в будущем, планируется обеспечить поддержку генерации Asm.js-кода на основе исходных текстов, написанных на более удобных для разработчиков низкоуровневых диалектах JavaScript, таких как LLJS (http://lljs.org/) (Low-Level JavaScript), что позволит использовать Asm.js не только для кода, транслируемого с C/C++, но и для проектов, изначально развиваемых на JavaScript.


URL: https://blog.mozilla.org/luke/2013/03/21/asm-js-in-firefox-n.../
Новость: https://www.opennet.ru/opennews/art.shtml?num=36468

Ответить | Правка | Cообщить модератору

Оглавление
В Firefox 22 появится Asm.js, низкоуровневое высокопроизводи..., opennews, 22-Мрт-13, 23:35  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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