WASM简介
是什么?
WASM 全写是 WebAssembly,字面上的意思是 Web 平台的 Assembly,即 Web 平台的汇编语言。
但是他并不是真正的汇编语言,而是一种二进制格式
,它的目标是在 Web 平台上运行。可以理解为 Web 浏览器设计的一种虚拟平台的类汇编语言
。
可以用 C/C++/Rust
等语言编写,然后通过 WASM
编译成二进制格式
,然后在浏览器中运行
。
为什么要使用WASM?
- 性能:WASM 是一种高效的二进制格式,比 JavaScript 更快,更节省内存
- 跨平台:WASM 可以在多种平台上运行,如浏览器、服务器、移动设备等
- 安全:WASM 是一种沙盒环境,不能直接访问底层系统,安全性更高
应用场景(能做什么?)
- 图像/音视频处理:视频滤镜、在线照片编辑器、视频转码工具(如ffmpeg-wasm)等
- 游戏开发:Unity、Unreal引擎的Web版本,3D/2D游戏移植到浏览器
- 数据可视化:大规模图表计算、实时数据渲染
- 科学计算/仿真:物理模拟、机器学习等
- 前端模块优化:使用WASM可以将一些计算密集型的任务放在浏览器中执行,减少服务器负载
- 桌面应用 web 化:如 AutoCAD、Photoshop 的 Web 版本
- 商业/办公工具:PDF解析器、电子表格等
与JS的关系
- WASM 是一种二进制格式,不能直接运行,需要通过 JS 来加载和运行。
- 二者可以互相传值
- 最好的方式是:WASM处理性能相关的任务,JS处理交互相关的任务。