2分钟了解 WebAssembly

224 阅读1分钟

很明显啊, 这是一个英文单词, 并且是一个组合词, web + assembly assembly 很多中国人不知道什么意思,但是我要是说出他的翻译,你一定立马知道了, 他就是汇编语言

顾名思义WebAssembly 就是 web 上的汇编语言

所以理论上所有可以编译成为汇编语言的高级语言都可以通过编译器 转换成wasm

wasm 有两个后缀.wat和 .wasm

wat是WebAssembly text 文本呈现模式 内容大概是这个样子

(module  (func $mul (param $factor1 i32) (param $factor2 i32) (result i32)    local.get $factor1    local.get $factor2    i32.mul)  (export "mul" (func $mul)))

wasm是二进制格式

Pasted image 20240216144348.png 你可以使用Emscripten 来编译高级语言的代码到wasm

$ emcc hello.c -o hello.html

这会返回编译后的二进制文件和一个html封装容器, 你可以通过打开html的控制台来查看wasm的执行情况

或者也可以使用js 封装容器, 你可以在nodejs环境中直接运行, 我一般使用vscode 的 run code 插件

$ emcc hello.c -o hello.js

这就是wasm 的用法, 由于它可以提供接近原生汇编级别的高性能, 常被用来计算在js中高消耗的任务, 这也有助于维护移动设备电量, 提供更好的运行体验

about me

我是meanc, 欢迎关注