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也将测试网页发布,供测试。
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无法使用一边串流同时编译的最佳化,为了让测试简单易于比较,因此暂时停用了这项功能。
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倍。返回搜狐,查看更多
责任编辑:
java web运行的快慢_WebAssembly执行速度真的很强悍吗?对微软Edge很无语相关推荐
- 使Docker搭建Java Web运行环境
Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种"轻量级"容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公 ...
- 【jeecg Docker安装】使用 Docker 搭建 Java Web 运行环境
Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种"轻量级"容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公 ...
- 使用 Docker 搭建 Java Web 运行环境
Docker 是 2014 年最为火爆的技术之一,几乎所有的程序员都听说过它.Docker 是一种"轻量级"容器技术,它几乎动摇了传统虚拟化技术的地位,现在国内外已经有越来越多的公 ...
- CentOS6.5使用 Docker 搭建 Java Web 运行环境
http://www.osforce.cn/group/25/thread/1211?fr=weibo&mu=140910XRNWcD Docker 是 2014 年最为火爆的技术之一,几乎所 ...
- idea java web运行_使用IDEA创建JavaWeb项目 部署本地tomcat并运行
一.下载商业版IDEA 二.新建JavaWeb项目 1.在菜单栏找到File >> New >> Project 2.在弹出的窗口中找到Java EnterPrise & ...
- 在redhat/centos的linux环境下安装配置java web运行环境
2019独角兽企业重金招聘Python工程师标准>>> 环境安装配置: 1.jdk的安装配置 ①下载jdk,地址 http://www.oracle.com/technetw ...
- windows XP(32位) 安装java web 部署环境
背景 客户有个服务器是windows XP系统,需要安装java web 运行环境,这个就是产品线上要的服务器. 有人会问那间公司还会用这个xp系统来做服务器的,没错我的第一反应也是一样,然后我建议换 ...
- IDEA for Java Web
Ref:Intellij Idea 创建Web项目入门(一) Ref:IntelliJ IDEA 简体中文专题教程 Ref:'cannot run program '/path/to/tomcat/b ...
- Java web框架
Java web框架综述 Java Web设计框架:Web应用的Java框架综述 特金德·辛格博士,助理教授, 旁遮普巴廷达Baba Farid学院计算机科学系(印度) 摘要:在本文中,我将Web设计 ...
最新文章
- excel求和为什么是0_Excel教程:小小的N函数竟如此厉害
- 『中级篇』Minikube快速搭建K8S单节点环境(61)
- Oracle字符集的查看查询和Oracle字符集的设置修改
- android中怎么网络判断,Android中判断网络是否连接实例详解
- php mysql导出csv文件_详解PHP导入导出CSV文件
- Spring中都用到了哪些设计模式?
- 阿里云2020上云采购季,你适合买什么云产品?
- leetcode 300. 最长上升子序列
- Fluent Web API集成测试
- oracle一对多个值,Oracle一张表中实现对一个字段不同值和总值的统计(多个count)...
- nodejs注册为windows服务实现开机自启动
- ISA 发布内网 NLB
- UG塑胶模具设计培训,、胶模具成型工艺培训
- php 二级导航,导航下面的二级导航,显示和隐藏,
- LSM6DS3 gyro数据设置
- python空字典怎么定义_python dict怎么定义
- iOS15新特性、iOS15适配
- 北向接口和南向接口及SDN
- ios IDP/IEP证书申请测试用
- YDOOK:putty: 最新版 putty 下载安装完整教程,windows怎么下载安装 putty?
热门文章
- java中getDelta是什么意思_Java IResourceDelta.getMarkerDeltas方法代码示例
- KDT 对比 DDT 小栗子
- 三代测序纠错软件汇总篇
- unity鼠标控制镜头旋转_unity3D鼠标滚轮来实现镜头拉近拉远及视角旋转
- java中保存图片到本地_java保存网络图片到本地
- setTimeOut()和setInterval()的用法
- 图像拼接--Fish-Eye Lenses-Based Camera Calibration and Panoramic Image Stitching
- Linux/Debian/Ubuntu报错解决:W: Target Packages (main/binary-amd64/Packages) is configured multiple times
- matlab心电图诊断系统,ECG-diag MATLAB心电图自动诊断程序 联合开发网 - pudn.com
- apk里面的图片不显示是加密了吗_【App】智能电视机视频盒子软件,你们缺吗?...