Web Assembly (Wasm),垃圾回收



我听说Webassembly将成为静态类型语言的编译目标,并且可以在浏览器中运行。有人声称它可以以(接近(本机速度在浏览器中运行。这是因为Wasm相对接近相应机器的机器指令。

但是,有两种类型的语言可以编译为 Wasm:

  1. 带有垃圾回收的语言,例如Java,C#
  2. 没有垃圾回收的语言,例如 C/C++、Rust

我目前的理解是,垃圾回收是一个对性能产生负面影响的过程,因为它需要 CPU 周期。

问题:

如果 Wasm 程序是用具有垃圾回收的语言编写的,或者用没有垃圾回收的语言编写的,性能会有所不同吗?

GC 提案旨在严格按使用量付费。也就是说,不使用相关指令的程序不应受到任何影响。

至少就Wasm的当前浏览器实现而言,另一种思考方式是,GC提案只是为您提供了一种访问JavaScript值所在的相同堆的方法。无论 Wasm 是否使用它,该堆都存在,当它不使用时,与当前情况没有区别。

相关内容

  • 没有找到相关文章

最新更新