Blazor 所有wasm速度相等吗?

Blazor 所有wasm速度相等吗?,blazor,webassembly,Blazor,Webassembly,正如我们所知,wasm可以从cpp c#typescript rust等“编译”而来。问题是,wasm是从cpp或typescript编译而来,是否会对性能产生很大影响?或者不管从哪里编译,wasm都是相同的wasm 不。问问你自己——所有使用不同语言的x86程序都有相同的速度吗?没有 同样的事情也发生在wasm身上 当使用不同的语言时,它们很难产生相同的二进制文件。实际上,即使使用相同的代码和相同的语言,根据优化选项,它们的性能也可能有所不同 它们不共享相同的工具链、库、优化和运行时。即使您成

正如我们所知,wasm可以从cpp c#typescript rust等“编译”而来。问题是,wasm是从cpp或typescript编译而来,是否会对性能产生很大影响?或者不管从哪里编译,wasm都是相同的wasm

不。问问你自己——所有使用不同语言的x86程序都有相同的速度吗?没有

同样的事情也发生在wasm身上

当使用不同的语言时,它们很难产生相同的二进制文件。实际上,即使使用相同的代码和相同的语言,根据优化选项,它们的性能也可能有所不同


它们不共享相同的工具链、库、优化和运行时。即使您成功地构建了完全相同的二进制文件,您仍然可能有不同的主机端运行时(或导入的函数)。

要补充Bumsik Kim的答案,差异不仅是由不同的实现造成的,而且还由源语言的特性造成的:不同的语义,如静态或动态类型或(im)易变性使得可能/限制不同的优化。JavaScript的语义严重限制了性能优化,这一事实直接导致了WebAssembly本身的开发。

C#严格来说,不能编译为WebAssembly。有一个版本的Mono运行时和CIL程序集被编译为WebAssembly。然后,C#代码将针对这些对象运行。