当前位置: 首页
科技数码
得物 iOS 启动优化之 Building Closure

得物 iOS 启动优化之 Building Closure

热心网友 时间:2025-09-05
转载

我们探索了 BuildingClosure 的生成过程,发现在Building Closure阶段中,可能存在字符串的 Hash 碰撞 引发循环次数大幅增加,进而引发了启动耗时暴增,进而导致启动耗时的大幅增加。

免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈

一、神秘的 BuildingClosure

1. dyld && BuildingClosure

2. BuildingClosure 非常耗时

3. BuildingClosure 文件解析

二、离奇的启动耗时暴增事件

1. 启动耗时暴增 200ms

2. BuildingClosure 耗时异常变化定位

三、启动优化新秘境

1. Perfect Hash

2. 向前一步

四、总结

得物一直重视用户体验,尤其是启动时长这一重要指标。在近期的启动时长跟进中,我们发现了在BuildingClosure 阶段的一个优化方式,成功的帮助我们降低了 1/5 的 BuildingClosure 阶段的启动耗时。Building Closure 并非工程的编译阶段(虽然它有一个building),Building Closure 是应用初次启动时会经历的阶段,因此它会影响应用的启动时长。

单就BuildingClosure阶段而言,我们观察到该阶段其中一个函数从 480ms 暴增到 1200ms 左右(PC 电脑端运行 dyld 调试统计耗时数据),我们通过优化,将耗时从1200ms降低到110ms。即使相比最开始的情况,也相当于从480ms降低到了110ms,由此可见Building Closure 优化是应用进行启动优化必不可少的一个重要手段。因此在这里我们也和各位读者进行分享,期望能够对各自项目有所帮助。

一、神秘的 BuildingClosure

启动优化的技术、实现方案业界有不少的文章可以参考学习,这里不再额外赘述。我们来探索下启动过程中非常神秘的 BuildingClosure。

BuildingClosure 是在System Interface Initialization阶段 dyld 生成的,并且我们也无法做任何的干预,另外相关的剖析文章相对较少,所以说BuildingClosure 较为神秘,也是实至名归。

BuildingClosure 是由dyld在应用启动阶段执行的,所以想要了解 BuildingClosure 还是要从 dyld 开始了解。

dyld && BuildingClosure

Dyld 源码可以在 Apple GitHub 上查阅 https://github.com/apple-oss-distributions/dyld

相信大家都应该了解过,BuildingClosure 是在 iOS 13 引入进来的,对应的 dyld 为 dyld3,目的是为了减少启动环节符号查找、Rebase、Bind 的耗时。

核心技术逻辑是将重复的启动工作只做一次,在 App 首次启动、版本更新、手机重启之后的这次启动过程中,将相关信息缓存到 Library/Caches/com.app.dyld/xx.dyld 文件中,App 在下次启动时直接使用缓存好的信息,进而优化二次启动的速度。

在 iOS 15 Dyld4 中更是引入了 SwiftConformance,进一步解决了运行时 Swift 中的类型、协议检查的耗时。

图片图片

来源:https://www.51cto.com/article/812188.html

游乐网为非赢利性网站,所展示的游戏/软件/文章内容均来自于互联网或第三方用户上传分享,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系youleyoucom@outlook.com。

同类文章
更多
联想2025年目标解析:营收超6000亿,净利增97.99亿

联想2025年目标解析:营收超6000亿,净利增97.99亿

3月31日消息,联想控股今日发布截至 2025 年 12 月 31 日止年度全年业绩公告:公司总收入为人民币 6059 45 亿元,同比增长 18%;年内归属于本公司权益持有人净利润为人民币 97

时间:2026-03-31 22:01
华为2025年报解析:经营稳健,持续增长符合预期

华为2025年报解析:经营稳健,持续增长符合预期

3月31日消息,华为今日发布2025年年度报告,报告显示,华为经营结果符合预期,实现全球销售收入8,809亿元人民币,净利润680亿元人民币。2025年研发投入达到1,923亿元人民币,约占全年收入

时间:2026-03-31 22:01
美医疗科技2025年减亏超七成 新订单猛增36%

美医疗科技2025年减亏超七成 新订单猛增36%

3月31日消息,3月30日,太美医疗科技(HK2576)披露2025年度业绩报告。财报显示,公司全年实现营业收入5 13亿元,同比下降7 0%;年度亏损由2 17亿元大幅收窄至5070万元,同比减少

时间:2026-03-31 22:01
天数智芯首份财报:上市后年营收突破10亿

天数智芯首份财报:上市后年营收突破10亿

3月31日消息,上海天数智芯半导体股份有限公司(简称:“天数智芯”,股份代号:9903)今日发布截至2025年12月31日的财报。财报显示,天数智芯2025年营收为10 34亿元,较上年同期的5 4

时间:2026-03-31 22:01
如家出行2025年营收暴增,同比增长达114.6%背后解读

如家出行2025年营收暴增,同比增长达114.6%背后解读

3月31日消息,3月31日,如祺出行发布截至2025年度全年业绩公告。报告期内,如祺出行核心财务指标全面向好,除录得总收入52 86亿元,同比大增114 6%,年内订单量、交易额均录得翻倍增长,利润

时间:2026-03-31 22:01
热门专题
更多
刀塔传奇破解版无限钻石下载大全 刀塔传奇破解版无限钻石下载大全
洛克王国正式正版手游下载安装大全 洛克王国正式正版手游下载安装大全
思美人手游下载专区 思美人手游下载专区
好玩的阿拉德之怒游戏下载合集 好玩的阿拉德之怒游戏下载合集
不思议迷宫手游下载合集 不思议迷宫手游下载合集
百宝袋汉化组游戏最新合集 百宝袋汉化组游戏最新合集
jsk游戏合集30款游戏大全 jsk游戏合集30款游戏大全
宾果消消消原版下载大全 宾果消消消原版下载大全
  • 日榜
  • 周榜
  • 月榜
热门教程
更多
  • 游戏攻略
  • 安卓教程
  • 苹果教程
  • 电脑教程