【问题标题】:Are all wasm speeds equal?所有的wasm速度都一样吗?
【发布时间】:2019-10-18 07:25:55
【问题描述】:

正如我们所知,wasm 可以从 cpp c# typescript rust 等“编译”。问题是,无论是从 cpp 还是 typescript 编译,wasm 是否会产生很大的性能差异?或者不管它是从哪里编译的,wasm 都是同一个 wasm?

【问题讨论】:

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

标签: blazor webassembly


【解决方案1】:

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

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

当使用不同的语言时,它们几乎不会生成相同的二进制文件。实际上,即使使用相同语言的相同代码,根据优化选项的不同,它们的性能也可能不同。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多