首页 > 解决方案 > WebAssembly 如何在任何机器上运行?

问题描述

最近看过几个 WebAssembly (Wasm) 演示文稿。我知道 Wasm 是一个编译目标,像 C/C++这样的静态类型语言可以编译到。然后浏览器可以运行 Wasm 代码,并以某种方式将其转换为各自机器的机器代码。像这样:

Wasm WebAssembly

问题:

浏览器如何将 Wasm 转换为合适的机器码?

标签: assemblybrowserwebassembly

解决方案


浏览器有 JavaScript 的解释器和 JIT 编译器。这些通常非常复杂,浏览器必须做很多“工作”来创建优化的 JIT 代码供机器执行。

使用 webassembly 并没有太大的不同。浏览器仍然需要 JIT 代码。但是,这里的工作要简单得多。选择 WebAssembly 指令集是为了使这项任务相对简单。尽管如此,浏览器仍然对 WebAssembly 模块进行“分层”编译。

如果您想了解详细信息,最好的办法是查看浏览器的源代码!


推荐阅读