我在 emscripten 文档中阅读了 emscripten 默认编译为 asm.js 优化,但如果我打开编译后的代码,我找不到任何“使用 asm;” 如何得到它?我应该手动添加还是编译错误?
目前我正在使用“emcc main.c -o out.html”进行编译,也尝试使用 -02 标志。
我在 emscripten 文档中阅读了 emscripten 默认编译为 asm.js 优化,但如果我打开编译后的代码,我找不到任何“使用 asm;” 如何得到它?我应该手动添加还是编译错误?
目前我正在使用“emcc main.c -o out.html”进行编译,也尝试使用 -02 标志。
这是设计使然。有时它会生成(参见源代码)"almost asm"
而不是"use asm"
,这会禁用所有 asm.js 优化。当编译的代码使用浏览器中未实现的某些功能(如此 v8 问题)时,会发生这种情况。对于我现在正在处理的项目,我已将其替换"almost asm"
为"use asm"
Firefox,并将其保留为 Chrome,因为"use asm"
在启动时导致严重减速。
因此,仅替换为是不安全的"almost asm"
,"use asm"
但有时这可以正常工作。您应该在所有必须支持的浏览器版本中仔细测试您的应用程序(但确保您在关闭 devtools 的情况下进行测试) - 如果它有效,这意味着您有一个已经实现的幸运案例:继续并替换。
不是最好的解决方案,但我用“使用 asm”替换了“几乎 asm”,它可以与 Firefox 一起使用(正确编译并且可以更快地测量)。
我也一直在寻找让 Emscripten 自己做的解决方案,但没有找到解决方案。