TA(App总启动时间) = T1(main()之前的加载时间 进程构建时间) + T2(main()之后的加载时间 运行环境准备时间) +T3(首页数据加载+闪屏页数据同步) 应用时间
https://juejin.cn/post/6844903966329798669
cpu 耗时,IO 耗时
https://www.cnblogs.com/zyzmlc/p/14080984.html
2.2 main函数后
main函数阶段的优化建议主要有以下几点:
在main函数之后的didFinishLaunching
方法中,主要是执行了各种业务,有很多并不是必须在这里立即执行的,这种业务我们可以采取延迟加载,防止影响启动时间。
1:业务层面:
-
减少启动初始化的流程
,能懒加载的懒加载,能延迟的延迟,能放后台初始化的放后台,尽量不要占用主线程的启动时间 -
优化代码逻辑,
去除非必须的代码逻辑
,减少每个流程的消耗时间 -
启动阶段能
使用多线程
来初始化的,就使用多线程 -
尽量
使用纯代码
来进行UI框架的搭建,尤其是主UI框架,例如UITabBarController。尽量避免使用Xib或者SB,相比纯代码而言,这种更耗时 -
删除废弃类、方法
2:技术层面
- 1.
二进制重排
(重排的是编译阶段
的文件顺序
,减少
启动时刻,硬盘
到内存
的操
作次数
)
我思故我在