InfoQ|5分钟看懂WebAssembly
作者 | Mehdi Zed 译者 | 王强 策划 | 李俊辰 2019 年 12 月 5 日 , WebAssembly 正式加入 HTML、CSS 和 Javascript 的 Web 标准大家庭 。 很多事情都会受益于这一全新的标准 , 并且它在浏览器中的性能表现是空前的 。 本文会用五分钟的时间介绍一下这个正在进行中的小变革 。
本文最初发布于 jesuisundev.com 网站 , 经原作者授权由 InfoQ 中文站翻译并分享 。
往 事1995 年 , Brendan Eich 用了不到 10 天就创建了 Javascript 。 那时 , Javascript 的设计并非以速度见长 。 它基本上是用于表单验证的 , 同时速度非常缓慢 。 随着时间的流逝 , 它也在一天天变好 。
在 2008 年 , 异军突起的谷歌推出了自己全新的浏览器:谷歌 Chrome 。 Chrome 内部有一个名为 V8 的 Javascript 引擎 。 V8 的革命性进步是对 JavaScript 的即时(JIT)编译 。 从解释代码到 JIT 编译的这种转变大幅提升了 Javascript 的性能 , 从而让整个浏览器的速度变得飞快 。 如此快的速度将催生 NodeJS 或 Electron 等技术 , 并推动 Javascript 迎来爆炸式增长 。
在 2015 年 , WebAssembly 首次发布 , 并提供了一个运行在 Unity 下的游戏的小型演示 。 那款游戏是直接在浏览器中运行的!
在 2019 年 , W3C 使 WebAssembly 成为了新的 Web 标准 。 就像 V8 引擎一样 , WebAssembly 即将带来全新的性能革命 。 它的身影已经出现在了 Web 的赛道上 , 枪声一响便遥遥领先 。
什么是 WebAssembly?WebAssembly(缩写为 wasm)是一种使用非 Javascript 代码 , 并使其在浏览器中运行的方法 。 这些代码可以是 C、C++ 或 Rust 等 。 它们会被编译进你的浏览器 , 在你的 CPU 上以接近原生的速度运行 。 这些代码的形式是二进制文件 , 你可以直接在 Javascript 中将它们当作模块来用 。
WebAssembly 不能替代 Javascript 。 相反 , 这两种技术是相辅相成的 。 通过 Javascript API , 你可以将 WebAssembly 模块加载到你的页面中 。 也就是说 , 你可以通过 WebAssembly 来充分利用编译代码的性能 , 同时保持 Javascript 的灵活性 。
本文插图
WebAssembly 这个名子有点误导人 。 WebAssembly 确实适用于 Web , 但它的使用场景远不止于此!开发 WebAssembly 的团队为了能让它用在所有环境下 , 跨越了重重障碍才取得成功 。 我们已经看到了这样的案例:
此外 , 有一个误解也是相当普遍的 。 WebAssembly 不是编程语言 。 WebAssembly 是一种中间格式 , 叫做字节码 , 其可作为其他语言的编译目标 。 这么说可能还是会让人云里雾里 , 我们来画些图具体解释一下 。
它是如何工作的?
本文插图
看到这张图片了吧?画的多棒啊 。 如果我说我是用 Photoshop 画的你信不信?管它呢 , 我们来看图中的内容 。
- 第一步:这里是你和你的开发技能 。 你使用 C 或 C++ 生成源代码(还可以使用其他语言) 。 这段代码应该可以解决某个问题 , 或者完成某段对浏览器中的 JavaScript 来说太过复杂的流程 。
- 第二步:你将使用 Emscripten 来做翻译 。 Emscripten 是使用 LLVM 构建的工具链 , 可将你的源代码编译为 WebAssembly 。 安装它之后 , 你可以通过几个简单的步骤快速编译任意内容 , 稍后我们会具体介绍 。 这一步完成时 , 你将得到一个 WASM 文件 。
- 第三步:你将在网页上使用这个 WASM 文件 。 在将来 , 你可以像其他 ES6 模块一样加载这个文件 。 现在它的用法稍微复杂一点 , 但并没有什么绕弯子的部分 。
推荐阅读
- InfoQ|Google早已看到未来多容器的挑战,利用Anthos能否实现多集群统一管理?
- iQOO手机|iQOO黑科技来了!120W超快闪充,15分钟就能充满电
- iQOO手机|15分钟电量100%!iQOO颠覆你的认知,120W超快闪充技术有多牛?
- 新机发布,iQOO手机|15分钟充满手机电量,iQOO新品将搭载120W超快闪充技术
- 手机大魔王|OPPO发布125W超级闪充,仅5分钟可充至41%的电
- AMD|选购技巧来了:荣耀多款AMD新锐龙笔记本上市,一文看懂区别
- iQOO手机|15分钟充满电+超强安全性,iQOO 120W超快闪充技术令人心动
- |OPPO搞出了125W手机快充:5分钟从0到41%,20分钟充满
- InfoQ|25岁网安CEO被判刑12年,技术隔离后,顶尖黑客被out了?
- iQOO手机|iQOO 120W超快闪充真机即将到来,5分钟充电50%,绝了