几年前 Mozilla 开发了 asm.js ,这是一个 JavaScript 的子集,可以让 JavaScript 代码执行更快速。知道今天 asm.js 的所有优化都是针对 Firefox 浏览器的,不过很快该技术也将得到微软最新的来自 Windows 10 的 Chakra JavaScript 引擎的支持。
微软今天宣布,对 asm.js 的支持是 10 个开发者最强烈要求的特性之一,因此 Chakra 团队决定实现它。Chakra 团队称:在过去数月我们密切研究了 asm.js 以及其相关技术,这是一项非常具有挑战性的工作,asm.js 相当于是可以在 Web 平台上使用 C/C++ 代码开发应用,并利用类似 WebGL 和 Web Audio 等技术。asm.js 的出现使得 Web 平台应用的性能可以媲美原生应用性能。这也是为什么我必须在下一个 Chakra 版本中实现它的原因,我们为之感到非常兴奋。
asm.js 主要的思路是开发者可以编译他们的 C/C++ 代码到经过优化后的 JavaScript 语言中(使用的是 Emscripten 编译器),然后在浏览器中执行。开发者也可以编写他们自己的 asm.js 兼容的代码,而只需要把注意力放在应用逻辑上。目前的情况下,asm.js 执行速度只比同样 C/C++ 代码慢 1.5 倍而已。
这项技术使得将原有的移动和桌面游戏移植到浏览器上变得很轻松(当然前提是这些游戏是基于 C/C++ 代码开发的)。如果没有 asm.js 你会想想这些游戏在浏览器上运行起来会有多糟糕的表现。另外因为仍是标准的 JavaScript 代码,因此仍可以运行在其他浏览器上,只是不够快而已。
下图显示的是运行在 Firefox 的 asm.js 应用和运行在其他浏览器上的性能比较:
via techcrunch
转自 http://www.oschina.net/news/59784/microsofts-javascript-engine-will-soon-support-mozillas-asm-js