java web运行的快慢_WebAssembly执行速度真的很强悍吗?对微软Edge很无语

原标题:WebAssembly执行速度真的很强悍吗?对微软Edge很无语

Firefox一直在WebAssembly上耕耘,在macOS与Windows上表现的都很好,Chrome 67在WebAssembly执行速度没有特别突出,甚至在macOS上还输给Java,而Safari与Edge则让人有点惊讶。

为解决网页应用程序的的原罪,WebAssembly一直被视为救星,那实际使用的状况如何呢?提供网页PDF SDK的PSPDFKit为此做了实际测试,发现结果跟预期很不一样,执行速度依浏览器以及操作系统不同而有很大的差异,唯有Firefox无论是在macOS或是Windows,执行WebAssembly速度都远快于Java外,其他差异不大甚至还发生慢上许多的情况。PSPDFKit也将测试网页发布,供测试。

9ff1739238d27185e6a07cdde3f3ddb3.png

PSPDFKit在2016年发布了他们第一个网页SDK,而这是一个需要依赖服务器组建来渲染文件的方法,因此当他们了解利用WebAssembly,能让浏览器直接处理完所有渲染工作,不需要后端基础设施,于是在积极研究下几个月后,他们发布了基于WebAssembly的PSPDFKit网页版本,以大幅降低客户的使用障碍。

PSPDFKit网页开发人员Philipp Spiess提到,渲染PDF是一件复杂的事,除了PDF是一个存在25年的格式外,其中还有许多情况需要处理,总共需要约50万行的C++程序码来完成PDF渲染工作。但要将这些C++程序代码完全移植到Java成本太高,他提到PSPDFKit不可能这么做,而WebAssembly和asm.js等技术,允许他们在浏览器中使用相同的程序码基础,将C++程序代码转成WebAssembly程序,由浏览器快速渲染PDF文档。

由于服务建构在WebAssembly基础上,他们对于WebAssembly的执行性能非常在意,因此PSPDFKit对此进行了多浏览器多平台的测试。他们想透过这个测试了解渲染情况,来提高网页版PSPDFKit的执行性能,因此Philipp Spiess强调,这个测试讲究应用程序实际执行的情况,测试得到的分数越低越好。

他还提到,用于测试的应用程序不会直接调用WebAssembly,反而还要先测试与之通讯的桥接部分,这样才符合网页版PSPDFKit实际执行状况。此外,这个测试还停用了WebAssembly的串流编译功能,Philipp Spiess表示,这项功能让WebAssembly和Java-fallback1难以比较,因为Java无法使用一边串流同时编译的最佳化,为了让测试简单易于比较,因此暂时停用了这项功能。

a7460851f0dc6516d1e09dca401c9c7c.png

8c3c03fc8e6d25923c668f4f57e30e1e.png

PSPDFKit在macOS与Windows两大操作系统,测试了Chrome、Firefox、Safari和Edge四大热门浏览器。结果显示Firefox在两个操作系统执行WebAssembly性能都是最好的,在macOS中,WebAssembly的执行性能分数1902,而Java-fallback1则是6855(分数愈低愈好),而在Windows中则是1300比4424,效率约快上3.5倍。

Philipp Spiess解释,Firefox之所以测试结果可以这么好,是因为采用了分层编译以及IndexedDB存储器。同时Firefox也给了PSPDFKit建议,在初始编译时,浏览器基准编译器(Baseline Compiler)启动会比较慢,因此应该避免在第一次启动时,在环境执行太多工作进程。

Chrome的情况则比较复杂一些,Chrome 67与Chrome 69金丝雀版本表现有些差异,在macOS中,Chrome 67执行WebAssembly分数5408略输Java-fallback1的4784,而Windows中WebAssembly分数3129则小赢Java-fallback1的3373。

Philipp Spiess认为,Chrome的WebAssembly的执行性能一直以来比现不错,但其V8引擎放弃为WebAssembly采用IndexedDB存储器稍微可惜。不过,官方表示他们将在Chrome 69更新基准编译器,因此Chrome 69加入测试后,无论在macOS或是Windows的WebAssembly执行性能皆获提升,且于macOS平台由输转赢。

值得注意的是,Safari即便在主场macOS上,WebAssembly的测试分数却高达8382,执行速度低于Java-fallback1的5802,在PSPDFKit与苹果合作追踪问题后,发现Safari存在一个bug严重影响WebAssembly的表现,官方表示在修正后速度已经获得提升,但没有详述分数。

如图,吸引眼球的项目则是微软力推的Edge,WebAssembly在Windows的执行表现分数破万11362,远高于Java-fallback1的7315,即便Edge执行Java的速度也比其他竞争平台慢2倍。返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值