姗姗来迟的 JIT编译支持终上线 iOS 14.2,仿真应用可具有更佳性能

2020-11-7 20:10 来源: IT之家 IT资讯

龙8网址龙8网址11月7日消息 据外媒 9to5mac 报道,iOS 14.2 现已引入 JIT编译支持。

什么是 JIT?

正如字面意思,JIT—— just in time,即时编译。如果一个程序在它运行的时候创建并且运行了全新的代码,而非那些最初作为这个程序的一部分保存在硬盘上的固有的代码,即为 JIT。

说人话:JIT可以在固有代码的基础上生成新的代码,并自己运行新生成的代码。

有什么意义?

虽然苹果没有特意提到,但通过外媒 9to5mac 今日报道,可确认 iOS 14.2 中已引入 JIT编译支持特性。

在此之前,网传最广的说法是,由于审查等敏感问题,苹果不提供修改内存页面的访问权限的 API,也禁止对 POSIX 函数 mprotect()的调用,所以也无法实现 JIT。简单来说,IOS 封禁了内存(或者堆)的可执行权限,从而从根本上干掉了 JIT的存在。

虽然苹果一直不支持 JIT,但一些开发人员已实现通过 hack 途径达成 JIT的特性,但这会影响 App 运行的效率并带来玄学 bug。此外,这种漏洞在 iOS 14 中已被封杀。

而现在苹果在 iOS 14.2 中默默推出 JIT的原因是?

不知道,但不可否认的是,这将为仿真应用(非官方 App)在 iPhone 和 iPad 上全速运行提供了可能。

正文

外媒就此采访了开发者 Testut,她表示苹果实际上已在 Beta 版本中加入了 JIT支持,且保留到正式版本中,虽然一句话没有提,但这大概率是苹果官方表态而非 bug。

借助 iOS 14.2 上的 JIT编译支持,仿真应用现在可以在 iOS 中全速运行,而不会受到攻击和其他损失。

“例如,JITDelta 可以模拟更强大的系统,比如?PS2,GameCube 和 Wii。如果没有 JIT,开发者们将需要再等几年,才能使硬件具备此功能。起初我对此表示怀疑,但现在更倾向于认为这是苹果有意的更改。”

但是,这并不意味着用户会在 App Store 中看到仿真应用,用户甚至看不到任何使用 JIT的应用程序。Testut 表示,当前的实现方法仅适用于侧面加载的应用,这些应用通常是通过 Xcode 和其他开发人员工具而非 App Store 安装的。换句话说,这是供专门的开发人员调试 App 所使用的功能。

“我怀疑将 JIT限制为仅侧加载的应用是其背后的意图(而且更可能与使用 Xcode 进行调试时应用运行未签名代码的需求有关),但是我很想知道这种限制是否会长期存在。”

龙8网址龙8网址提醒,以下是AltStore的讲解和演示视频:

  免责声明:本网内容转载自其他媒体,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容,文字的真实性,完整性,及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。

  另,市场有风险,选择需谨慎!此文仅供参考,不作买卖依据,投资者若据此操作,风险自担。

  投稿邮箱:[email protected]。详情访问龙8网址龙8网址网:http://www.huayanglvyou.com

编辑:龙8网址龙8网址网
微信公众号
意见反馈
Baidu