Skip to content
风起
风起
2023-06-24

wasm内存模型

wasm内存模型:

wasm是一种栈式虚拟机,没有寄存器的概念,所有操作数都放在运行时的栈上。内存分为托管堆栈和非托管堆栈。

我们将线性内存中由编译器组织的堆栈称为“非托管堆栈(unmanaged memory)”,非托管堆栈可以暴露给外部供js读写访问。

其余的是“托管堆栈(managed memory)”,托管堆栈不受用户控制。

js与wasm传参:

设计原则:

  • 最小化复制

  • 最小化序列化

在Rust侧将中大型长期存在的数据结构暴露指针给js,同时暴露出相关的操作函数,js通过调用这些函数并传入相关数据结构的指针,由函数内部执行复杂的运算,最终返回一个最小化的可复制的结果供js使用。

参考文献: