一个使用 WebAssembly 重构 JavaScript 库的案例,满满的实战经验。
作者的探索精神很强,一边学 WebAssembly,一边将他所维护的 Micrio 重写了 3 遍。先是用 C++、emscripten,之后换成 AssemblyScript,再后来折腾 AssemblyScript + WebGL。看着很过瘾!
是一篇了解 WebAssembly 在实际中落地的好文章。
传送门: https://engineering.q42.nl/webassembly/
粗略了解当前最新的仅 JS 版本的 Micrio(版本 2.9)的技术堆栈:该库作为单个 JS 文件适用于所有半现代浏览器,甚至包括用于 2D 的 Internet Explorer 10 和 IE 11用于 360° 图像。
它使用 Canvas2D 渲染 2D 图像,并使用 three.js /WebGL 渲染 360° 图像。用ES6 JavaScript(或 ECMAScript 6,最新版本的 JavaScript)编写,它仍然编译为 ES5 以支持 Internet Explorer 11。
可以想象,在几毫秒内在浏览器中显示231.250 x 193.750 像素的图像,允许用户自由放大和导航,需要一点处理能力。
现在,Micrio 2.9还不错。它在所有设备上运行都非常流畅。但是随着 WebAssembly 的到来,所有计算都可以在本地 CPU 速度下完成,这可能会对 Micrio 的性能产生很大的影响,并且可以大大改善代码架构。
Prev Chapter:Flet:一个无需前端开发经验即可使用您喜欢的语言构建交互式多用户 Web、桌面和移动应用程序
Next Chapter:Google开源了一个新的编程语言:carbon