iOS 精品摘录

iOS-底层原理 32:启动优化(二)优化建议

2020-11-24  本文已影响0人  Style_月月

iOS 底层原理 文章汇总

启动

启动的过程一般是指从用户点击app图标开始到AppDelegate 的didFinishLaunching方法执行完成为止,其中,启动也分为冷启动和热启动

而我们这里所说的启动优化,一般是指冷启动情况下的,这种情况下的启动主要分为两部分:

所以,T1+T2的过程 就是 从用户点击App图标到用户能看到app主界面的过程,即需要启动优化的部分

pre-main阶段的优化

iOS-底层原理 15:dyld加载流程中,已经了解过了dyld的加载流程。pre-main阶段的启动时间其实就是dyld加载过程的时间

针对main函数之前的启动时间,苹果提供了内建的测量方法,在Edit Scheme -> Run -> Arguments ->Environment Variables点击+添加环境变量 DYLD_PRINT_STATISTICS 设为 1),然后运行,以下是iPhone7p正常启动的pre-main时间(以WeChat为例)

pre-main启动时间示例

说明
pre-main阶段总共用时1.7s

针对这几部,有以下几点优化建议:

main函数阶段的优化

在main函数之后的didFinishLaunching方法中,主要是执行了各种业务,有很多并不是必须在这里立即执行的,这种业务我们可以采取延迟加载,防止影响启动时间。

didFinishLaunching中的业务主要分为三个类型

main函数阶段的优化建议主要有以下几点:

上一篇 下一篇

猜你喜欢

热点阅读