我们知道wasm可以从cpp c#打字稿rust等“编译”。问题是,无论wasm是从cpp还是打字稿进行编译,都会对性能产生很大的影响吗?还是从哪里编译都没关系,wasm就是相同的wasm?
答案 0 :(得分:3)
不。问问自己-使用不同语言的所有x86程序是否具有相同的速度?不。
wasm也发生了同样的事情。
使用不同的语言时,它们几乎不会生成相同的二进制文件。实际上,即使使用相同的代码和相同的语言,它们的性能也会有所不同,具体取决于优化选项。
它们不共享相同的工具链,库,优化或运行时。即使您成功构建了完全相同的二进制文件,您仍然可能具有不同的主机端运行时(或导入的函数)。
答案 1 :(得分:0)
要补充Bumsik Kim的答案,差异不仅是由不同的实现方式引起的,而且还取决于源语言的特征:诸如静态或动态类型或(im)可变性之类的不同语义使得可能/限制了不同的优化。 JavaScript的语义严重限制了性能优化,这一事实直接导致了WebAssembly本身的发展。