浅谈 WebAssembly 对 Web 发展的影响

HTML5 herman 705浏览 0评论
公告:“业余草”微信公众号提供免费CSDN下载服务(只下Java资源),关注业余草微信公众号,添加作者微信:xttblog,发送下载链接帮助你免费下载!
本博客日IP超过1800,PV 2600 左右,急需赞助商。
极客时间所有课程通过我的二维码购买后返现24元微信红包,请加博主新的微信号:xttblog,之前的微信号好友位已满,备注:返现
所有面试题(java、前端、数据库、springboot等)一网打尽,请关注文末小程序
视频教程免费领

如果你还没听过 WebAssembly ,那么我建议你去读一下 WebAssembly 简介

WebAssembly 是由Google, Microsoft, Mozilla,Apple等几家大公司合作发起的一个关于面向Web的通用二进制和文本格式的项目。

我个人预测 WebAssembly 至少在某种程度上,它将改变Web生态。

各浏览器 WebAssembly 的运行速度对比

上图是 WebAssembly 在各主流浏览器的运行速度对比。可以看出 WebAssembly 的运行速度和 JavaScript 相差不大。

从今的 JavaScript 是 Web 世界的汇编语言,然而我相信它在不久的将来会和 WebAssembly 并存。这并不意味着WebAssmbly是为了取代 JavaScript而生。

过去几年,我们看到越来越多的项目问世,它们试图通过开发编译程序,将其他语言代码转化为 JavaScript,以此让开发者克服 JavaScript自身存在的一些短板。其中一些项目专注于给编程语言增加新的功能,比如微软的 TypeScript和Google的Dart,或是加快 JavaScript的执行速度,例如 Mozilla 的 asm.js 项目和Google的PNaCI

WebAssembly 是一种新的字节码格式。它的缩写是".wasm",.wasm 为文件名后缀,是一种新的底层安全的二进制语法。它被定义为“精简、加载时间短的格式和执行模型”,并且被设计为 Web 多编程语言目标文件格式。 这意味着浏览器端的性能会得到极大提升,它也使得我们能够实现一个底层构建模块的集合,例如,强类型和块级作用域。

最好不要把WebAssembly仅仅当做一门编程语言,实际上它更像是一个编译器。

最近我看到了阮一峰在写《asm.js 和 Emscripten 入门教程》。个人认为 webassembly 相较于 asm.js 的优势主要是涉及到性能方面。根据 WebAssembly FAQ 的描述:在移动设备上,对于很大的代码库,asm.js 仅仅解析就需要花费20-40秒,而实验显示 WebAssembly 的加载速度 比 asm.js 快了20倍,这主要是因为相比解析 asm.js 代码,JavaScript 引擎破译二进制格式的速度要快得多。

WebAssembly对于JS来说绝对是一个巨大的改进。WebAssembly 对于浏览器来说也有着非同一般的意义。 支持WebAssembly的浏览器可以识别二进制格式的文本,它有能力编译比JS文本小得多的二进制包。 这将给web应用带来类似与本地应用的性能体验!

包括 Google,Microsoft,Mozilla 只是这一长串名单中的少数几家公司。项目带头人们发起了WebAssembly Community Group这一社区,这个团队的愿景是“在一种新的,轻量的 web 编码格式的基础上,促进浏览器厂商们的合作.” 不过,WebAssembly 项目还只是刚刚启动,虽然它有一个美妙的开头,但在 WebAssembly 成为一个大众认可的 web 标准之前,它还有很长的路要走。

业余草公众号

最后,欢迎关注我的个人微信公众号:业余草(yyucao)!可加QQ1群:135430763(2000人群已满),QQ2群:454796847(已满),QQ3群:187424846(已满)。QQ群进群密码:xttblog,想加微信群的朋友,之前的微信号好友已满,请加博主新的微信号:xttblog,备注:“xttblog”,添加博主微信拉你进群。备注错误不会同意好友申请。再次感谢您的关注!后续有精彩内容会第一时间发给您!原创文章投稿请发送至532009913@qq.com邮箱。商务合作可添加助理微信进行沟通!

本文原文出处:业余草: » 浅谈 WebAssembly 对 Web 发展的影响