姗姗来迟的 JIT 编译支持终上线 iOS 14.2,仿真应用可具有更佳性能
iOS 14.2 已悄然引入 JIT编译支持:这意味着什么?
11月7日,外媒9to5mac带来一则消息:iOS 14.2 现已引入了对JIT编译的支持。这可不是一个普通的系统更新日志条目,对于开发者社区,尤其是对模拟器应用领域而言,它或许意味着一扇新的大门被悄然推开。
什么是 JIT?
JIT,全称Just In Time,翻译过来就是“即时编译”。这个概念听起来有点技术范儿,但理解起来并不复杂。简单说,如果一个程序在运行时,能够动态地创建并执行全新的代码,而不是仅仅运行那些预先写好、存储在硬盘上的固定代码,那么它就使用了JIT技术。
来个更直白的比喻:这就好比一个厨师原本只会照着固定菜谱做菜(固有代码),但现在他突然获得了“临场发挥”的能力,能根据现有食材现场创作出新菜式(生成新代码),并且立刻就把这道新菜做出来(运行新代码)。这就是JIT的魅力所在。
这有什么意义?
虽然苹果在更新说明中对此只字未提,但多方消息已经证实,iOS 14.2确实带来了JIT编译支持。要知道,在此之前,业界普遍认为苹果出于安全和审查等因素的考虑,从根本上禁止了JIT的实现方式——具体来说,就是通过封禁内存页的可执行权限,让程序无法动态生成和运行代码。
当然,总有技术高手能找到“旁门左道”。过去,一些开发者通过技术漏洞实现了类似JIT的效果,但这往往以牺牲应用运行效率和带来各种不稳定“玄学”bug为代价。更关键的是,这些漏洞在iOS 14中大多已被封堵。因此,苹果这次在系统层面的官方支持,就显得格外引人注目。
苹果为何在此时默默推出JIT?
苹果的动机目前还是个谜,官方没有给出任何解释。但一个不可否认的事实是,这项改动为仿真应用(并非指App Store的最新应用,而是指模拟老旧游戏主机等的程序)在iPhone和iPad上实现全速运行,提供了真正的可能性。
开发者的视角与影响
外媒就此采访了知名开发者Testut。她透露,实际上JIT支持从Beta测试版就已经存在,并一路保留到了正式版。这 strongly suggests(强烈暗示) 此次变动是苹果的“有意为之”,而非偶然的系统漏洞。
得益于iOS 14.2的JIT支持,仿真应用现在有望在iOS设备上全速运行,而无需担心性能损耗或安全风险。Testut举例说:“像Delta这样的模拟器,将有机会模拟更强大的游戏系统,比如PS2、GameCube和Wii。如果没有JIT,开发者们可能还需要再等上好几年,直到硬件性能足以用其他方式弥补。最初我也持怀疑态度,但现在我更倾向于认为这是苹果一次有意的改变。”
不过,先别急着去App Store里寻找这些模拟器。Testut同时也泼了一盆“冷水”:当前的JIT实现,仅适用于通过侧载方式安装的应用。这类应用通常借助Xcode等开发工具安装,而非通过官方的App Store。说白了,这更像是一个面向开发者的调试功能,方便他们在测试应用时运行未签名的代码。
Testut推测:“将JIT限制于侧载应用,很可能就是苹果的本意(或许更多地与调试需求相关)。但话说回来,这种限制未来是否会一直存在,倒是个值得观察的有趣问题。”
附:AltStore的讲解与演示
提到侧载,就绕不开AltStore这样的工具。为了方便理解,这里附上一段关于AltStore的讲解与演示视频,它展示了非App Store应用安装的一种可能途径: