webAssembly是否有标准基准?

时间:2019-07-13 05:25:55

标签: c++ testing benchmarking webassembly

是否有针对webAssembly或程序语言的标准基准测试?

我想将我的c ++程序迁移到webAssembly,所以我必须做一些基准测试以测试webAssembly的性能并将其与c ++的性能进行比较。

2 个答案:

答案 0 :(得分:1)

还没有。但是,在Wasm CG上达成了创建全面基准套件的强烈共识,请参见notes from the last F2F meeting和链接的幻灯片。 GH repository最近已为其创建,但到目前为止仅包含一般信息。

答案 1 :(得分:0)

更新(事后调查@ Webassembly SF)

参加Webassembly聚会之后,征求各界人士的意见。我很幸运地偶然发现了一些对这个问题非常透彻的人。

  1. 如果您只想将Javascript的首次运行(JIT优化之前)与wasm速度进行比较,请仅使用Fib Seq。这对于查看更新浏览器的胆量或更改机器是否具有显著作用更为有用。但是:这是一个微基准测试,因此无法全面了解其中存在的所有不同类型的速度。 (在每种类型的操作中,一种语言不一定总是比另一种语言快x)。 TLDR:其他人已经写了这个(不需要自己写)。除非您的程序专门为fib seq,否则仅应将其与其他基准测试功能套件一起查看。 :D。
  2. 您真正想做的事情:在现有应用程序中进行最昂贵操作的微基准测试。这实际上取决于您要执行的应用程序。您最好的选择可能是在运行时分析现有的c ++应用程序,以查看哪些操作占用最多的时间。然后,为那些“昂贵”的操作创建某种批量单元测试。假设这是对图像像素的操纵:创建一个测试以插入100张图片并计算平均执行时间。然后集中精力在.wasm中重新创建该特定的“批量”测试,以查看您将遇到的性能变化。这可以帮助您决定是否要迁移/能够预测迁移的速度影响。
  3. 昨晚有个亮相的人是亚伦·特纳(Aaron Turner),他有一篇与基准测试wasm相关的精彩文章,这是他的文章,因为我不想代他发言:https://medium.com/@torch2424/webassembly-is-fast-a-real-world-benchmark-of-webassembly-vs-es6-d85a23f8e193

原始

我一直在使用斐波那契数列至25 作为基准。

为什么?

  • 尽管计算量很大,但使用多种语言进行编程非常容易,而无需涉及大量导入的库(与加密基准标记相对)

  • 在现实生活中有一定用途。

  • 好像其他人也这样做了……(有疑问时,请剔除它)https://boyan.io/angular-wasm/fibonacci <<甚至显示了JS比较!

但是,我仍然会考虑您将webassembly用于什么目的。 如果您想在前端网站上包括c ++功能...那么您是否不想针对Webassembly测试Javascript的速度(因为浏览器不支持“本机” C ++程序,因此无法在上述条件下进行基准测试?)。我确实知道可以在浏览器外部使用Web程序集,如果是这种情况(例如IoT传感器),我将收回先前的主张。

对于绝大多数可能阅读此书的人来说……他们可能处于“用于Web应用程序的Web组装”的顶空。在这种情况下,对js vs wasm进行基准测试可以说明性能如何您正在使用wasm来介绍Web应用程序。

,如果我的假设或陈述有误,请纠正我。另外,如果具有建议的标准化基准的功能,那么LMK!我很想听听有更多Web汇编经验的人!

PS :我今晚将参加SF Webassembly会议,并将向那里的大假发提出这个问题!