想要在 Javascript, TypeScript 中增加性能的一种方法是适时使用 WebAssembly.
WebAssembly 很好, 但有一些细节值得注意.
wasm and wat
wasm 是 wat 的二进制形式. wasm 和 wat 之间可以互相转换. 比如使用官方的 wabt.
不过如果你在用 Intel 芯片的 Mac, 可能需要自己进行工具的编译. 目前 wabt 不为 darwin x86 提供预编译的包.
引用外部代码
在官方工具 binaryen 中, 引用的代码如:
(import "binaryen-intrinsics" "foo" (func $foo))
含义是从外部 binaryen-intrinsics
对象中读取 foo
, 作为 $foo
函数进行使用.
但是这种引用在 Deno 中是不被直接支持的, 因为 Deno 认为 wat 应该引用 "文件", 而不是 "对象".