垃圾收集语言(例如Go和AssemblyScript)要求将运行时与应用程序一起交付以处理垃圾收集。与没有垃圾回收的语言相比,这会产生更大的二进制大小。各种可编译为WebAssembly的语言的二进制大小如何比较?
答案 0 :(得分:0)
我不能说Go,但是AssemblyScript有一个可选的GC,需要手动打开。另外,即使没有任何内存分配器直接处理线性内存,它也可以工作(请参阅https://developers.google.com/web/updates/2019/02/hotpath-with-wasm)。除了所有最后的工作之外,还制作了binaryen,它允许针对代码收缩进行大量优化。即使使用内存分配器和内置GC,简单的“ hello world”示例也不会变得大于2 kb,因为tlsf可以编译为大约1 kb,而增量三色标记垃圾收集器甚至更小。
当然,当这两个建议时,所有这些都是不必要的:
在WebAssembly中实现。
答案 1 :(得分:0)
我发现这个网站https://boyan.io/wasm-wheel/演示了运行WebAssembly的不同语言。该页面上的尺寸:
按预期,Go和PHP很大。似乎Java和Kotlin都可以在这里找到它,但也许像Go的二进制大小气球一样,加上了更复杂的代码。