我现在可以对要通过商店分发的 iOS 应用程序使用 JIT 吗?
Can I now use a JIT for an iOS application that is to be distributed through the store?
几年前 same question 出现了,Apple 是否更新了提交规则以允许在提交的应用程序中使用 JITter? opensmalltalk-vm 比非 JITting 版本快大约十倍,甚至 apple watch 也有足够的 ram 来轻松 [=14=] 它。
Apple 的政策没有改变。需要 PROT_WRITE | PROT_EXEC
页面的应用未获准进入商店,而 JIT 需要页面。
我看到了两种解决方法:
使用 AOT,而不是 JIT:修改 Cog,以便它可以将 jitted 代码存储到
文件。在 运行 进行覆盖测试时在开发机器上执行此操作
你的应用程序。那应该jit所有的代码。将代码文件放入
应用程序包。在 运行 时,将文件加载到 PROT_READ | PROT_EXEC
页并执行在那里找到的所有方法。所有其他人都需要
已解释。
是一种在您的应用程序中实现运行 JIT 的方法:Apple 的JavaScript JIT。它是目前所有移动平台上最快的。您可以帮助 SqueakJS 的代码生成器生成更高效的 JS 代码。这将允许 运行在 JIT 上运行所有 Smalltalk 代码,甚至是新方法。
您可以查看 Pharo-JS,它允许您在 Smalltalk 中开发并部署到 Javascript;然后可以通过 Cordova 或 PhoneGap 运行 作为 iOS(或 Android)应用程序。
最近的 ESUG 2016 会议上的 Pharo-JS presentation 提供了后者的演示(大约 25 分钟)。
几年前 same question 出现了,Apple 是否更新了提交规则以允许在提交的应用程序中使用 JITter? opensmalltalk-vm 比非 JITting 版本快大约十倍,甚至 apple watch 也有足够的 ram 来轻松 [=14=] 它。
Apple 的政策没有改变。需要 PROT_WRITE | PROT_EXEC
页面的应用未获准进入商店,而 JIT 需要页面。
我看到了两种解决方法:
使用 AOT,而不是 JIT:修改 Cog,以便它可以将 jitted 代码存储到 文件。在 运行 进行覆盖测试时在开发机器上执行此操作 你的应用程序。那应该jit所有的代码。将代码文件放入 应用程序包。在 运行 时,将文件加载到
PROT_READ | PROT_EXEC
页并执行在那里找到的所有方法。所有其他人都需要 已解释。是一种在您的应用程序中实现运行 JIT 的方法:Apple 的JavaScript JIT。它是目前所有移动平台上最快的。您可以帮助 SqueakJS 的代码生成器生成更高效的 JS 代码。这将允许 运行在 JIT 上运行所有 Smalltalk 代码,甚至是新方法。
您可以查看 Pharo-JS,它允许您在 Smalltalk 中开发并部署到 Javascript;然后可以通过 Cordova 或 PhoneGap 运行 作为 iOS(或 Android)应用程序。
最近的 ESUG 2016 会议上的 Pharo-JS presentation 提供了后者的演示(大约 25 分钟)。