苹果如何在iOS15和macOSMonterey中启动应用程序
今年秋天,您的应用程序加载速度可能会快得多。当你今年秋天第一次启动iOS 15和macOS Monterey时,你可能会注意到新的 FaceTime 功能和 Safari 变化之外的一些东西:提高了速度。一位深入研究 Apple 新操作系统代码的开发人员表示,Apple 已经显着改变了应用程序与系统通信的方式,并且可以大大缩短启动时间。
iOS 开发人员和前 Apple 员工 Noah Martin 在阅读Xcode 13的发行说明时发现了一个有趣的地方 :
使用 macOS 12 或 iOS 15 或更高版本的部署目标构建的所有程序和 dylib 现在都使用链式修复格式。这使用不同的加载命令和 LINKEDIT 数据,并且不会在较旧的操作系统版本上运行或加载。
这听起来可能不多,但这两个句子解释了可以改变您使用 Mac 和 iPhone 体验的技术。Martin 做了一些侦探工作来了解这一变化背后的原因,正如他在一篇冗长且技术性很强的 Medium 帖子中所描述的那样,针对 iOS 15 和 macOS 12 优化的应用程序的启动速度可能比现在快得多。
这个怎么运作
由于 iOS 和 macOS 目前可以运行,因此所有应用程序都创建为捆绑包。与 Windows 不同,应用程序在一个包中配备了最必要的组件。应用程序基本上是包含各种程序组件的文件夹。(如果您有 Mac,您可能知道这一点。在 Finder 中右键单击应用程序,您将看到菜单项“显示包内容”,可让您查看应用程序内部。)此外,应用程序也会加载与动态链接器进程 (dyld) 共享库,然后将它们复制到系统的 RAM 以便在程序运行时快速访问。
RAM 由所谓的页面组成,每个页面只有 16 K今年秋天,您的应用程序加载速度可能会快得多。当你今年秋天第一次启动iOS 15和macOS Monterey时,你可能会注意到新的 FaceTime 功能和 Safari 变化之外的一些东西:提高了速度。一位深入研究 Apple 新操作系统代码的开发人员表示,Apple 已经显着改变了应用程序与系统通信的方式,并且可以大大缩短启动时间。
iOS 开发人员和前 Apple 员工 Noah Martin 在阅读Xcode 13的发行说明时发现了一个有趣的地方 :
使用 macOS 12 或 iOS 15 或更高版本的部署目标构建的所有程序和 dylib 现在都使用链式修复格式。这使用不同的加载命令和 LINKEDIT 数据,并且不会在较旧的操作系统版本上运行或加载。
这听起来可能不多,但这两个句子解释了可以改变您使用 Mac 和 iPhone 体验的技术。Martin 做了一些侦探工作来了解这一变化背后的原因,正如他在一篇冗长且技术性很强的 Medium 帖子中所描述的那样,针对 iOS 15 和 macOS 12 优化的应用程序的启动速度可能比现在快得多。
这个怎么运作
由于 iOS 和 macOS 目前可以运行,因此所有应用程序都创建为捆绑包。与 Windows 不同,应用程序在一个包中配备了最必要的组件。应用程序基本上是包含各种程序组件的文件夹。(如果您有 Mac,您可能知道这一点。在 Finder 中右键单击应用程序,您将看到菜单项“显示包内容”,可让您查看应用程序内部。)此外,应用程序也会加载与动态链接器进程 (dyld) 共享库,然后将它们复制到系统的 RAM 以便在程序运行时快速访问。
RAM 由所谓的页面组成,每个页面只有 16 KB 的容量,并且只要应用程序运行就一直存在。到目前为止,dyld 进程已经逐渐打包这些表,这基本上延迟了应用程序的启动。正如 Martin 了解到的那样, Apple 在 iOS 15 和 macOS 12 中通过链、修复和指针解决了这个问题——而不是逐渐将单个应用程序组件和共享库分别加载到 RAM 中,因此指针可以将应用程序链接到高达 64 GB 并连接他们通过修复彼此。
听起来很复杂,其实很简单。RAM 内容现在以链的形式相互连接。这节省了大量用于管理的元数据,从而使整个 RAM 管理更加高效。此外,长时间未使用的 RAM 页会被压缩。
据马丁说,这个新系统有两个结果。可用内存量得到优化,内存中二进制内容的针对性分布可确保更快地启动应用程序。在他的测试中,Martin 能够节省高达 50% 的元数据,这些元数据是通过 dyld 过程导入的,最终可以让应用程序更快地启动。
我们很快就会看到这是如何工作的。Apple 已经发布了 iOS 15 和 macOS 12 的第三个测试版,可能分别在 9 月和 10 月发布。用程序的启动。正如 Martin 了解到的那样, Apple 在 iOS 15 和 macOS 12 中通过链、修复和指针解决了这个问题——而不是逐渐将单个应用程序组件和共享库分别加载到 RAM 中,因此指针可以将应用程序链接到高达 64 GB 并连接他们通过修复彼此。
听起来很复杂,其实很简单。RAM 内容现在以链的形式相互连接。这节省了大量用于管理的元数据,从而使整个 RAM 管理更加高效。此外,长时间未使用的 RAM 页会被压缩。
据马丁说,这个新系统有两个结果。可用内存量得到优化,内存中二进制内容的针对性分布可确保更快地启动应用程序。在他的测试中,Martin 能够节省高达 50% 的元数据,这些元数据是通过 dyld 过程导入的,最终可以让应用程序更快地启动。
我们很快就会看到这是如何工作的。Apple 已经发布了 iOS 15 和 macOS 12 的第三个测试版,可能分别在 9 月和 10 月发布。
更多知识
-
如何治疗和预防甲流(服务窗·科学防疫)
原标题:如何治疗和预防甲流(服务窗·科学防疫)每年春季是甲流的高发季节,最近一些地方出现了散发病例。什么是甲流?有什么特点?如何治...烟燃烟灭つ 268 阅读
-
iPhone15的type-C接口玩手段,欧盟将重罚,苹果会妥协么?
据称苹果今年的iPhone15将会首次用上type-C接口,不过苹果为了赚取厚利可能会给type-C接口,而欧盟显然也早就为此做好准备,如果苹果执意如...﹏丶小迣界 284 阅读
-
微视频|同心逐梦 共向未来
原标题:微视频|同心逐梦 共向未来春风浩荡中,2023年全国两会通过法定程序把党的二十大作出的决策部署转化为全国人民的实际行动,胜利闭...■■俗人雅钦 187 阅读
-
东方甄选回应直播间疑似售假:会积极解决问题,请不要攻击主播
Tech星球3月16日消息,日前东方甄选被曝将养殖虾当野生虾卖引发热议。昨日晚间,东方甄选官方账号发文回应称,“东方甄选作为一家公司,会...原地等候已经远去的幸福 216 阅读
-
OpenAI 离成熟商业公司更近一步
发布 GPT-4 的同时,OpenAI 离成熟公司越近,离名字里的 “Open” 越远。GPT-4 无疑是一个更好的产品。写散文、诗歌、代码,这些 GP...床上小旋风 281 阅读
-
维珍轨道公司暂停运营一周:员工休无薪假,股价暴跌50%
3月16日消息,据外媒援引知情人士消息称,当地时间周三火箭发射公司维珍轨道决定暂停运营一周时间,并安排大部分员工休无薪假,期间寻求能...冷夕颜 237 阅读
-
推动世界共同发展繁荣 创造更加美好未来
原标题:推动世界共同发展繁荣 创造更加美好未来新华社北京3月13日电题:推动世界共同发展繁荣 创造更加美好未来新华社记者十四届全国人...而后的我们 220 阅读
-
瞭望·治国理政纪事丨马上就办 真抓实干
原标题:瞭望·治国理政纪事丨马上就办 真抓实干 ◆ 1991年2...愚人自愈 203 阅读
撰写回复