Edge, браузер Microsoft, заменивший IE, быстро отказался от устаревших технологий и так же быстро принял новые возможности. Самой последней новой технологией для внедрения в Edge является asm.js, и есть хорошее принципиальное доказательство того, что он действительно быстрее.
Asm.js — это подмножество JavaScript, которое было выбрано для применения оптимизации. Идея состоит в том, что если вы напишете asm.js, он будет работать на стандартном движке JavaScript, но если движок распознает asm.js, он будет работать намного быстрее. Как сказано в блоге Edge:
«Он (asm.js) применяет ограничения, такие как статическая типизация, чтобы обеспечить возможности для оптимизации, такие как специализированная компиляция типов без аварийных остановов и предварительная компиляция (AOT). Эти оптимизации позволяют коду asm.js иметь почти нативную производительность и предсказуемое поведение «.
Microsoft представила поддержку asm.js еще в июне в качестве предварительной версии, но теперь она поддерживается по умолчанию в последней версии Edge.
В качестве демонстрации того, насколько хорош asm.js, команда Edge реализовала Asm.js Chess Battle. Это не ваше обычное графическое приложение в реальном времени, чтобы показать, насколько быстр asm.js, это шахматное соревнование. Они взяли шахматный движок Stockfish и преобразовали его в asm.js. Когда-то одна копия Stockfish сталкивается с другой — одним стандартным JavaScript и одним asm.js. Каждому дается временной интервал 200 мс для отработки следующего хода. Поскольку версия asm.js работает быстрее, она проверяет больше возможных ходов перед тем, как сделать свой ход. Как вы могли догадаться, версия asm.js имеет тенденцию к победе — это весьма впечатляюще.
Вы также можете попробовать демонстрацию в других поддерживающих asm.js браузерах — Firefox и даже Chrome.
Поддержка asm.js встроена в движок Chakra, который использует Edge. Однако, как и приложения Edge Hosted Web Apps и приложения универсальной платформы Windows, которые используют элемент управления WebView, также используют Chakra и, следовательно, они тоже поддерживают asm.js.
Вы можете попробовать демонстрацию Chess Battle в легком приложении-образце WebView и увидеть те же преимущества asm.js.
Помимо поддержки asm.js, инструменты разработчика F12 были расширены, чтобы сделать возможным отладку asm.js. Конечно, вы можете отлаживать его так же, как обычный JavaScript, что и делают другие браузеры. Edge, однако, покажет вам консольные сообщения при запуске кода asm.js.
Если вам не нравятся шахматы, вы также можете попробовать Angry Bots, Tappy Chicken, ogv.js, которые используют asm.js.