Web Assembly(Wasm),垃圾收集

Wil*_*een 6 performance assembly garbage-collection webassembly

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

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

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

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

题:

如果Wasm程序是用垃圾收集的语言编写而不是没有语言,那么性能是否会有差异?

And*_*erg 8

GC提案旨在严格按现收现付.也就是说,不应以任何方式影响不使用相关指令的程序.

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