aboutsummaryrefslogtreecommitdiff
path: root/files/ru/games/tools/asm.js/index.html
diff options
context:
space:
mode:
Diffstat (limited to 'files/ru/games/tools/asm.js/index.html')
-rw-r--r--files/ru/games/tools/asm.js/index.html31
1 files changed, 31 insertions, 0 deletions
diff --git a/files/ru/games/tools/asm.js/index.html b/files/ru/games/tools/asm.js/index.html
new file mode 100644
index 0000000000..08e08bb6bc
--- /dev/null
+++ b/files/ru/games/tools/asm.js/index.html
@@ -0,0 +1,31 @@
+---
+title: asm.js
+slug: Games/Tools/asm.js
+tags:
+ - JavaScript
+ - WebAssembly
+ - asm.js
+translation_of: Games/Tools/asm.js
+original_slug: Games/Инструменты/asm.js
+---
+<div>{{GamesSidebar}}</div>
+
+<div>{{IncludeSubnav("/en-US/docs/Games")}}</div>
+
+<div class="summary">
+<p><span class="seoSummary"><a href="http://asmjs.org/">Asm.js</a> - это подмножество JavaScript, имеющее более высокую оптимизацию. В этой статье описаны возможности asm.js, улучшения которые оно дает, где и как это можно применять, а также дополнительные ресурсы и примеры.</span></p>
+</div>
+
+<h2 id="Что_такое_asm.js">Что такое asm.js?</h2>
+
+<p>Это небольшое, более строгое подмножество JavaScript которое ограничивает стандартный язык только конструкциями, типа `while`, `if` и данными в виде чисел, именованных функций, и другими простыми вещами. Оно не разрешает использование объектов, строк, и всего, что требует больших нагрузок. <a href="http://asmjs.org/">Asm.js</a> напоминает C во многих вещах, но он является полностью валидным кодом на JavaScript и работает на всех имеющихся движках. Он позволяет JS движкам, поддерживающим <a href="http://asmjs.org/">asm.js</a>, оптимизировать такой код и даёт компиляторам, типа Emscripten, чёткое определение того, как нужно компилировать. Мы покажем, как asm.js код выглядит, чем он полезен и как с ним работать.</p>
+
+<p>Это подмножество JavaScript уже автоматически используется во многих движках, использующих технологию компиляции <a href="https://ru.wikipedia.org/wiki/JIT-%D0%BA%D0%BE%D0%BC%D0%BF%D0%B8%D0%BB%D1%8F%D1%86%D0%B8%D1%8F">Just-In-Time (JIT)</a>. Однако, указав явный стандарт, мы можем улучшить оптимизацию такого кода и получить максимальную производительность. Благодаря этому, упрощается совместная работа нескольких JS движков, потому что легче договориться о стандартах. Идея в том, что этот вид кода должен работать очень быстро в каждом движке, и если это не так, это ошибка, и есть четкая спецификация, что именно движки должны оптимизировать.</p>
+
+<p>Это также делает <a href="http://asmjs.org/">asm.js</a> достаточно простым для людей, которые пишут компиляторы высокопроизводительного кода под web. Они могут обратиться к спецификации <a href="http://asmjs.org/">asm.js</a>, чтобы найти более быстрые паттерны для него. <a href="https://github.com/kripken/emscripten">Emscripten</a>, компилятор C/C++ в JavaScript, выдает код <a href="http://asmjs.org/">asm.js</a>, работающий в некоторых браузерах с производительностью, близкой к машинному коду.</p>
+
+<p>Кроме того, если движок специально распознает код <a href="http://asmjs.org/">asm.js</a>, то можно сделать еще больше оптимизаций. На данный момент Chrome (<a href="https://www.chromestatus.com/feature/5053365658583040">статус</a>) и Firefox обладают поддержкой asm.js. Firefox имеет поддержку передовых фич asm.js</p>
+
+<h2 id="В_общем_об_asm.js">В общем об asm.js</h2>
+
+<p><a href="http://asmjs.org/">asm.js</a> - это вспомогательное подмножество языка JavaScript. Он имеет предсказуемый уровень производительности, т.к. ограничен только лишь некоторыми строгими типами и конструкциями. Рабочие характеристики близки скорее к машинному коду, чем к стандартам JS. Использование этого подмножества уже поддерживается главными веб браузерами. Работа <a href="http://asmjs.org/">asm.js</a> также зависит от браузера и от оборудования.</p>