banner
meanc

meanc

自部署博客在 blog.meanc.cc
twitter
github
discord server

2分钟了解 WebAssembly

很明显啊,这是一个英文单词,并且是一个组合词,
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 中高消耗的任务,这也有助于维护移动设备电量,提供更好的运行体验

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。