iOS 14.2 带来了 JIT 编译支持 可以让仿真应用跑出原生性能
你可能知道一些非官方的iOS应用提供了某种模拟工作方式,这些应用基于黑客手段和漏洞运行,这大大降低了性能--但这种情况即将改变。苹果已经在iOS14.2上悄然引入了对Just-In-Time(JIT)编译的支持,这将允许仿真应用在iPhone和iPad上全速运行。
AltStore背后的开发者Riley Testut分享了更多关于这一变化将如何影响这些提供虚拟机仿真的非官方应用的细节。但首先,我们简单解释一下什么是JIT以及它在iOS上的工作方式。
JIT,即Just-In-Time编译,是一种运行软件的方式,软件在执行过程中会被编译,而传统的软件在执行前会被完全编译。使用JIT,源码会实时翻译成机器的原生代码。
苹果从未在iOS上提供过对JIT编译的官方支持,但一些开发者已经找到了用黑客运行JIT的方法,其代价是存在一些BUG和性能低下,而且这些漏洞在iOS14上已经被彻底删除。至少到现在为止是这样。
暗示,苹果在iOS14.2Beta2中增加了对JIT编译的支持,另一方面却从未公开提到过这一点。JIT支持在整个测试版中都得到了持续维护,并在最终版本中得到了保留。开发者认为这是官方的实现,而不是苹果的疏忽,但目前还无法证实这一点。
在iOS14.2上支持JIT编译后,仿真应用现在可以在没有黑客手段、越狱等妥协的情况下全速运行。
例如,有了JIT,Delta理论上可以模拟PS2、GameCube和Wii等更强大的系统;如果没有JIT,我们还需要再等几年,硬件才有这个能力。
然而,这并不意味着我们会在App Store中看到仿真应用,甚至是任何其他使用JIT的应用。目前的实现只适用于侧装(side-load)应用,这些应用通常是通过Xcode和其他开发者工具而不是App Store安装的。换句话说,这是为以调试为目的的开发者准备的功能,我们也想知道这种限制是否会长期存在。