WebAssembly 可以作为 Web 开发中 JavaScript 的伴侣,承担性能密集型任务。 但到目前为止,两种语言之间的缓慢函数调用阻碍了两者的结合。Firefox Nightly beta 使这些调用比非内联的 JavaScript-to-JavaScript 函数调用运行得更快。 调用已从 JavaScript 优化到 WebAssembly,反之亦然。 Mozilla 还提高了从 WebAssembly 到内置函数的调用速度,内置函数是由浏览器提供的函数,如 Math.random。
对 WebAssembly 和 JavaScript 调用的优化分为两类:
通过消除组织堆栈框架的不必要工作来减少等记。
通过在功能之间采取最直接的路径来绕过中介。
Mozilla 最近在为提高 WebAssembly 速度而努力,主要体现在优化吞吐量和加载时间。 未来的计划要求将 WebAssembly 嵌入到 JavaScript 中。目前,唯一一种从 JavaScript 到 WebAssembly 的优化调用并不比 JavaScript-to-JavaScript 调用更快的情况是 JavaScript 内置了一个函数。 内衬(In-lining)为一次又一次调用相同函数的函数提供了一个快捷方式。
编译自:InfoWorld