Emscripten似乎不使用asm.js

时间:2013-11-17 14:37:53

标签: javascript emscripten asm.js

我在emscripten文档中读到emscripten默认编译为asm.js优化,但是如果我打开编译后的代码,我就找不到任何“use asm;”怎么弄明白?我应该手动添加还是编译错误?

目前我正在使用“emcc main.c -o out.html”进行编译,也尝试使用-02标志。

2 个答案:

答案 0 :(得分:3)

这是设计的。有时它会生成(请参阅source code"almost asm"而不是"use asm",这会禁用所有asm.js优化。当编译的代码使用某些未在浏览器中实现的功能(如this v8 issue)时会发生这种情况。 对于我现在正在处理的项目,我已将"almost asm"替换为"use asm"用于Firefox并将其保留为Chrome,因为"use asm"在启动时导致严重减速。

因此,用"almost asm"替换"use asm"是不安全的,但有时候这样做也行不通。您应该在所有浏览器版本中仔细测试您的应用程序(但确保您使用关闭的devtools进行测试)您必须支持 - 如果它有效,这意味着您有一个已经实现的幸运案例:继续并替换。

答案 1 :(得分:1)

不是最好的解决方案,但是我用“使用asm”替换了“几乎asm”,并且它与Firefox一起工作(正确编译并且可以更快地测量)。

我还寻找一个解决办法让Emscripten自己做,但没有找到解决方案。