几年前same question来了,Apple 是否更新了提交规则以允许在提交的应用程序中使用 JITter? opensmalltalk-vm 比非 JITting 版本快大约十倍,甚至 apple watch 也有足够的 ram 可以轻松运行它。
最佳答案
Apple 的政策没有改变。需要 PROT_WRITE | 的应用程序PROT_EXEC
页面未获准用于商店,而 JIT 需要它。
我看到了两种解决方法:
使用 AOT,而不是 JIT:修改 Cog,以便它可以将 jitted 代码存储到 文件。在运行覆盖测试的同时在开发机器上执行此操作 你的应用程序。那应该jit所有的代码。将代码文件放入 应用程序包。在运行时,将文件加载到
PROT_READ | PROT_EXEC
页并执行在那里找到的所有方法。所有其他人都需要 解释。有一种方法可以在您的应用程序中运行 JIT:Apple 的 JavaScript JIT。它是目前所有移动平台上最快的。您可以帮助 SqueakJS 的代码生成器生成更高效的 JS 代码。这将允许在 JIT 上运行所有 Smalltalk 代码,甚至是新方法。
关于ios - 我现在可以对要通过商店分发的 iOS 应用程序使用 JIT 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39182638/