Web Assembly (Wasm),垃圾回收
Web Assembly (Wasm), garbage collection
我听说 Webassembly 将成为静态类型语言的编译目标,并且可以 运行 在浏览器中。声称它可以 运行 在浏览器中以(接近)本机速度。这是因为 Wasm 比较接近相应机器的机器指令。
但是有两种语言可以编译成 Wasm:
- 具有垃圾回收功能的语言,例如Java、C#
- 没有垃圾收集的语言,例如C/C++,铁锈
我目前的理解是,垃圾收集是一个会对性能产生负面影响的过程,因为它需要 CPU 个周期。
问题:
如果 Wasm 程序是用具有垃圾回收功能的语言编写的,还是用具有 none 的语言编写的,在性能上会有差异吗?
GC 提案旨在严格按使用量付费。也就是说,不使用相关指令的程序应该不会受到任何影响。
另一种思考方式,至少就 Wasm 的当前浏览器实现而言,GC 提案只是为您提供了一种访问 JavaScript 值所在的同一个堆的方法。无论 Wasm 使用与否,该堆都存在,当不使用时,与当前情况没有区别。
我听说 Webassembly 将成为静态类型语言的编译目标,并且可以 运行 在浏览器中。声称它可以 运行 在浏览器中以(接近)本机速度。这是因为 Wasm 比较接近相应机器的机器指令。
但是有两种语言可以编译成 Wasm:
- 具有垃圾回收功能的语言,例如Java、C#
- 没有垃圾收集的语言,例如C/C++,铁锈
我目前的理解是,垃圾收集是一个会对性能产生负面影响的过程,因为它需要 CPU 个周期。
问题:
如果 Wasm 程序是用具有垃圾回收功能的语言编写的,还是用具有 none 的语言编写的,在性能上会有差异吗?
GC 提案旨在严格按使用量付费。也就是说,不使用相关指令的程序应该不会受到任何影响。
另一种思考方式,至少就 Wasm 的当前浏览器实现而言,GC 提案只是为您提供了一种访问 JavaScript 值所在的同一个堆的方法。无论 Wasm 使用与否,该堆都存在,当不使用时,与当前情况没有区别。