WebAssembly
前端每周清单半年盘点之WebAssembly 篇
前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点;分为新闻热点、开发教程、工程实践、深度阅读、开源项目、巅峰人生等栏目。欢迎关注【前端之巅】微信公众号
教程实践
-
《对比探秘
WebAssembly 性能优越之谜》: 本系列文章通过有趣的漫画介绍了WebAssembly 的前世今生,并且与JavaScript 就加载、解析、编译、执行等浏览进行了详细对比,从而介绍WebAssembly 的性能缘何相较于JavaScript 会好上很多。同时作者也强调,WebAssembly 与JavaScript 各有所长,未来并不会存在太多的竞争,更多的是相辅相成,各司其职。( http://suo.im/3jsTUH ) -
《浅析
WebAssembly 缘何优于Asm.js 》:WebAssembly 是新的Web 中可执行格式,逐现代浏览器纷纷地提供了对于WebAssembly 的原生支持;本文则是对于WebAssembly 相较于asm.js 带来的性能提升背后的原理进行简要介绍。(https://parg.co/bsv) -
《简短的
WebAssembly 卡通指南》:现在有很多关于WebAssembly 与JavaScript 生态圈的讨论,人们往往关注于WebAssembly 带来的巨大的性能提升以及它会如何颠覆现代Web 开发。不过很多的介绍中并没有详细阐述隐藏在速度提升之后的具体细节,本文则是从整个JavaScript 的演化史来介绍WebAssembly 巨大性能提升的原因。( https://parg.co/bVa ) -
《理解
WebAssembly 的文件格式》:为了保证WebAssembly 能够被人们阅读与理解,需要提供对于wasm 二进制格式的文本表示。该特性着眼于能够在文本编辑器、浏览器开发者工具等开发工具中浏览WebAssembly 文件,而本文则介绍了这种文件格式的规范与工作原理,以及底层的字节码与上层的JavaScript 对象之间的关联关系。( https://parg.co/bk6 ) -
《这
WebAssembly ,是Mozilla 赢了》:Mozilla 提出1 asm.js 与Google Chrome 提出的PNaCI 是都是致力于在浏览器中运行原生代码的技术方案。不过PNaCI 却存在着自绝于JavaScript 以及HTML 等问题,并且其他的浏览器厂商很难去支持PNaCI 标准。而asm.js 则以轻量级的对于标准Web 平台扩展的方式实现了这一目标,也就导致了最终WebAssembly 决定靠近asm.js 而不是PNaCI 。( http://robert.ocallahan.org/2017/06/webassembly-mozilla-won.html ) -
《
WebAssembly 初体验:重构简单游戏引擎》:WebAssembly 为我们提供了构建高性能的前端应用的途径,而本文则从零开始介绍如何使用C 来覆写简单的JavaScript 游戏引擎并且将其编译为WebAssembly 。本文依次介绍了如何搭建基础的Emscription 工具链、使用JavaScript 引入wasm 模块、覆写并且优化某个小型游戏引擎、两个引擎的性能评测等等部分。( http://blog.openbloc.fr/webassembly-first-steps/ ) -
《
Figma 利用WebAssembly 降低三倍加载速度》:自WebAssembly 推出之后,很多开发者都开始尝试在小型项目中实践WebAssembly ,不过尚缺大型真实案例比较。而Figma 因为其产品主要基于C++ 实现,可以方便地编译到WebAssembly 中并且与原方案进行性能比较。本文中Figma 介绍了它们在Firefox 中使用WebAssembly 之后带来的加载性能提升以及下载尺寸的优化,同时还提及了目前WebAssembly 在实际项目使用中存在的一些问题与风险。( https://parg.co/biB ) -
Rust、
WebAssembly 与Webpack :WebAssembly 是新的运行于Web 平台的二进制格式,我们能够将C 、C++、Rust 这些语言编译到.wasm 文件格式中然后在浏览器环境下运行他们;通常这些编译后的代码在包体体积与运行速度上都会比JavaScript 有明显提升。而本文则着眼于介绍如何在浏览器中执行底层的Rust 代码,也可以参考这篇文章( https://parg.co/by4) 来了解更多的关于WebAssembly 快速实践的知识。( https://parg.co/byh ) -
WebAssembly 在PSPDFKIT 的实践:随着今年三月份WebAssembly Community Group 就标准达成一致,越来越多的主流浏览器开始支持WebAssembly ,本文即是PDF 工具开发者PSPDFKIT 介绍它们利用WebAssembly 开发浏览器端渲染的PDS 预览工具的实践经验。本文首先介绍了asm.js 的工作原理与编译机制,然后阐述了WebAssembly 的概念与组成,最后介绍了WebAssembly 在PSPDFKit 的实践经验以及他们在将原本大型C++ 代码库转化为WebAssembly 格式时的体验;更多WebAssembly 相关资料参考这里。
- asm-dom
: asm-dom 是轻量级的基于WebAssembly 的Virtual DOM 框架,其允许开发者使用C++ 来构建Web 单页应用。开发者可以仅使用C++ 来编写Web 应用,然后通过Emscripten 来将其转化为WebAssembly ;其能允许开发者直接使用现有的C++ 标准库代码,从而保证代码复用与性能提升。