assembly - WebAssembly 如何在任何机器上运行?
问题描述
最近看过几个 WebAssembly (Wasm) 演示文稿。我知道 Wasm 是一个编译目标,像 C/C++这样的静态类型语言可以编译到。然后浏览器可以运行 Wasm 代码,并以某种方式将其转换为各自机器的机器代码。像这样:
问题:
浏览器如何将 Wasm 转换为合适的机器码?
解决方案
浏览器有 JavaScript 的解释器和 JIT 编译器。这些通常非常复杂,浏览器必须做很多“工作”来创建优化的 JIT 代码供机器执行。
使用 webassembly 并没有太大的不同。浏览器仍然需要 JIT 代码。但是,这里的工作要简单得多。选择 WebAssembly 指令集是为了使这项任务相对简单。尽管如此,浏览器仍然对 WebAssembly 模块进行“分层”编译。
如果您想了解详细信息,最好的办法是查看浏览器的源代码!
推荐阅读
- node.js - 获取 max updatedAt 的 X 值,聚合组
- javascript - 在自定义电子文本编辑器中保存换行符
- node.js - 从 MongoDb 集合中检索前 5 个字段
- firebase - Flutter 应用程序中的辅助 Firebase 项目
- c# - XMLDocument VS XmlReader 更有效地在 C# 中验证格式良好的 XML
- excel - 大家好,我刚开始使用 Excel VBA,有一个启动问题
- r - 匹配具有乘法误差的线性模型的 lm 和 optim 系数估计
- parallel-processing - 在 Java 中“即时”生成并行执行任务
- sitecore - sitecore 媒体库是 DAM 吗?
- azure - Tasks - Generate Scripts in Azure Synapse Serverless SQL