WebAssembly 是一种新的跨浏览器 Web 程序格式。您可以在 Lin Clark 的六部分系列文章 WebAssembly 动画介绍 中了解更多信息。与 JavaScript 不同,WebAssembly 是一种二进制格式,这意味着开发者需要新的工具来帮助理解和试验 WebAssembly。Mozilla 的 WebAssembly Explorer 就是这样的工具之一。
下面的视频演示了 WebAssembly Explorer 的基本功能,开发者可以使用它编写简单的 C 或 C++ 程序并将它们编译成 WebAssembly。
WebAssembly 和 WebAssembly Explorer 的一个优势是,开发者可以确切地看到对代码应用了哪些优化。例如,视频中的 WebAssembly 编译器能够使用 C 的类型信息自动在传统的除法和更有效的位移位快捷方式之间进行选择。使用 JavaScript 时,浏览器的 JIT 编译器最终可能会达到相同的优化效果,但没有保证。提前编译也避免了与机会性 JIT 编译器相关的概要分析和观察开销。
虽然 WebAssembly Explorer 是一个很好的学习工具,但它仍在早期开发阶段,目前还不适合复杂的程序。需要生产级编译器套件的开发者应该转向 Emscripten,它最初是用来输出 asm.js ,但现在已经扩展到生成 WebAssembly。
您可以在 GitHub 上找到 WebAssembly Explorer 的源代码,并且您可以在本周晚些时候 Firefox 52 发布时开始试验 WebAssembly。
关于 Dan Callahan
Mozilla 开发者关系工程师,前 Mozilla Persona 开发者。
5 条评论