分析 WebAssembly 与原生代码的性能
Analyzing the Performance of WebAssembly vs. Native Code

原始链接: https://ar5iv.labs.arxiv.org/html/1901.09056

该基准测试比较了 Google Chrome 和 Mozilla Firefox 在一系列测试(401.bzip2、429.mcf 等)中的性能。结果以平均执行时间以及误差范围(±)呈现。 通常,Firefox 在大多数基准测试中表现出比 Chrome 较慢的性能。 “减速”指标量化了这一点:Firefox 平均慢 1.55 倍(几何平均值)和 1.53 倍(中位数)。 在像 `644.nab_s` 这样的测试中,观察到显著的性能差异,Firefox 耗时明显更长(3639/3829),而 Chrome 为 (2476)。 然而,一些基准测试显示出可比的结果(例如,`450.soplex`)。 数据提供了详细的比较,突出了 Firefox 整体性能的滞后,但也确定了差异不太明显的领域。

一篇最近发表在 arXiv 上的论文分析了 WebAssembly (Wasm) 与原生代码的性能,并在 Hacker News 上引发了讨论。主要结论是 Wasm 的性能出乎意料地好,仅比原生代码慢约 45%,*同时* 具有显著优势。 评论员强调了 Wasm 的可移植性——能够在跨平台之间运行单个二进制文件——是一个主要优势,尤其是在考虑到性能损失的情况下。另一些人指出,与原生代码相比,Wasm 具有更高的安全性和沙箱功能。 讨论还指出,性能因运行时环境而异;提前 (AOT) 编译的 Wasm 运行时可以实现更接近原生速度(慢 5-10%),而基于浏览器的即时 (JIT) 编译则不然。最终,许多人认为 Wasm 是 JavaScript 的强大替代品,可以提供显著的性能提升。
相关文章

原文
Benchmark Native Google Chrome Mozilla Firefox 401.bzip2 370 ±plus-or-minus\pm 0.6 864 ±plus-or-minus\pm 6.4 730 ±plus-or-minus\pm 1.3 429.mcf 221 ±plus-or-minus\pm 0.1 180 ±plus-or-minus\pm 0.9 184 ±plus-or-minus\pm 0.6 433.milc 375 ±plus-or-minus\pm 2.6 369 ±plus-or-minus\pm 0.5 378 ±plus-or-minus\pm 0.6 444.namd 271 ±plus-or-minus\pm 0.8 369 ±plus-or-minus\pm 9.1 373 ±plus-or-minus\pm 1.8 445.gobmk 352 ±plus-or-minus\pm 2.1 537 ±plus-or-minus\pm 0.8 549 ±plus-or-minus\pm 3.3 450.soplex 179 ±plus-or-minus\pm 3.7 265 ±plus-or-minus\pm 1.2 238 ±plus-or-minus\pm 0.5 453.povray 110 ±plus-or-minus\pm 1.9 275 ±plus-or-minus\pm 1.3 229 ±plus-or-minus\pm 1.5 458.sjeng 358 ±plus-or-minus\pm 1.4 602 ±plus-or-minus\pm 2.5 580 ±plus-or-minus\pm 2.0 462.libquantum 330 ±plus-or-minus\pm 0.8 444 ±plus-or-minus\pm 0.2 385 ±plus-or-minus\pm 0.8 464.h264ref 389 ±plus-or-minus\pm 0.7 807 ±plus-or-minus\pm 11.0 733 ±plus-or-minus\pm 2.4 470.lbm 209 ±plus-or-minus\pm 1.1 248 ±plus-or-minus\pm 0.3 249 ±plus-or-minus\pm 0.5 473.astar 299 ±plus-or-minus\pm 0.5 474 ±plus-or-minus\pm 3.5 408 ±plus-or-minus\pm 1.0 482.sphinx3 381 ±plus-or-minus\pm 7.1 834 ±plus-or-minus\pm 1.8 713 ±plus-or-minus\pm 3.6 641.leela_s 466 ±plus-or-minus\pm 2.7 825 ±plus-or-minus\pm 4.6 717 ±plus-or-minus\pm 1.2 644.nab_s 2476 ±plus-or-minus\pm 11 3639 ±plus-or-minus\pm 5.6 3829 ±plus-or-minus\pm 6.7 Slowdown: geomean 1.55×\times 1.45×\times Slowdown: median 1.53×\times 1.54×\times
联系我们 contact @ memedata.com