【发布时间】:2020-02-23 00:30:43
【问题描述】:
WebAssembly 只有四种值类型:
-
i32– 32 位整数 -
f32– 32 位浮点数 -
i64– 64 位整数 -
f64– 64 位浮点数
每个都有自己的一组表示算术运算的操作码,例如i32.add、i64.add、f32.add 和 f64.add。还有一些操作码可以将更窄的整数包装成更宽的类型,例如int32.store_8,int64.load32_u。 WebAssembly v1 定义了约 170 个操作码,其中约 70 个专门用于 32 位数字,约 75 个用于 64 位。
在我看来,放弃对 32 位数字的支持将使操作码的数量几乎减半,而不会损失任何功能。这让我想知道:两者兼有有什么好处?
在 GitHub 上有 some discussions ,但它们对我来说有点太技术性了。
【问题讨论】:
-
32 位数字占用 64 位数字空间的一半。底层平台也可能具有效率更高的 32 位指令。