跳到主要内容

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处理交互相关的任务。