2016 - 2024

感恩一路有你

webassembly阮一峰 在Firefox中,如何加快JavaScript和WebAssembly代码的调用时间?

浏览量:1726 时间:2021-03-15 15:03:28 作者:admin

在Firefox中,如何加快JavaScript和WebAssembly代码的调用时间?

由官方博客文章可知,通过 JavaScript 执行 1 亿次 WebAssembly 函数调用的时间,已经从此前的 5500 ms(5.5 秒)、降低到了现在的不到 500 ms(0.5 秒)。

在运行依赖于 WebAssembly 的页面(包括一些基于浏览器的游戏)时,这项改进会更加明显。

此前,Mozilla 一直在使用 C 来帮助理解 WebAssembly 代码、并将之传递给 JavaScript 代码。

为了提升速度,Mozilla 决定直接切断这个“中间人”。该公司称:

我们拿到了入口存根处(entry stub)运行的 C 代码,让它可被 JIT 代码直接调用。

当引擎从 JavaScript 向 WebAssembly 切换时,就会解包 entry stub 数值、并将之放到正确的位置。

此外,Mozilla 还提升了通过 WebAssembly 调用浏览器内置函数的速度,以及从 JavaScript 到 WebAssembly 的单态调用。

如果你对内部工作原理的变化深感兴趣,请一定不要错过 Mozilla 官方撰写的这篇通俗易懂的博客文章(附有趣味的插图和注释)。

https://hacks.mozilla.org/2018/10/calls-between-javascript-and-webassembly-are-finally-fast-/

WebAssembly的出现是否会取代JavaScript?

webassembly都出来多久了?要是能颠覆它不早就颠覆了吗?它等什么?

webassembly阮一峰 webassembly成功案例 webassembly应用场景

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。