Emscripten 有一个标志OUTLINING_LIMIT
来获取较小的函数,这些函数可以通过浏览器的 JIT 进行优化,这与需要解释的大型函数不同。这是否也适用于 WASM,因为具有大功能的 WASM 会更慢吗?
您引用的文档对于 WebAssembly 的当前实现是不准确的。现在只有 Chakra 有一个解释器,任何“热”函数都会被 JIT 编译,无论大小。WebAssembly 的 JavaScriptCore 实现仅进行 JIT 编译,“热”函数在更高的优化级别重新编译。
话虽如此,大纲有几个优点:
.wasm
二进制可以变得更小。这意味着它下载速度更快。然而,这一切都在不断变化,引擎实现者会对我们在 Web 上看到的做出反应,并调整引擎以更好地处理现实世界的代码。做正确的事情通常是好的,如果您看到病态,并在每个引擎上记录错误。这可能意味着通过使用大纲来减少下载大小,并期望发生良好的重新内联。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句