WebAssembly
Web Assembly,是什么,为什么以及如何
什么
Web 程序集也称为 Wasm,是一种高效的、低级的 Web 字节码,高效的部分意味着它不仅可以快速传送到客户端浏览器,而且执行速度也很快,它的特点是安全且可移植,这意味着您不必处理内存溢出和类似问题,并且生成的机器代码可以在任何平台上执行并适应其架构。
原因
W3C 创建 Wasm 主要有两个原因,第一,作为 JavaScript 的补充解决方案,特别是对于需要大量 CPU/GPU 计算的应用程序(例如游戏、加密、图像或视频优化和编辑等);第二,是让开发人员能够使用其他语言编写他们的 Web 应用程序。
如何
Wasm 被定义为一个编译目标,这意味着在正常情况下,你会用其他语言(目前支持 C/C++ 和 Rust)编写程序,然后将其编译为 Web Assembly 可执行文件。
生成的二进制文件可以注入到你的 Web 应用程序中,浏览器解析该文件时会跳过解析 JS 文件时通常会运行的所有步骤,直接生成你正在使用的平台的机器码。这是因为 Wasm 已经过优化,并包含静态类型信息。
入门
要体验 Wasm,我推荐https://webassembly.studio/,这是一个很棒的 Web 编辑器,允许开发者尝试 Wasm 并编写基于 WebAssembly 的项目。
此外,还有https://mbebenita.github.io/WasmExplorer/,它基本上是一个将 C/C++ 代码转换为 Wasm 二进制代码的工具,甚至可以查看浏览器生成的线性汇编字节码(这基本上是机器码的人类可读的中间表示)。