冷启动定义
冷启动定义: 从用户点击App到首屏展示为止。
T1:main()函数之前,即操作系统加载App可执行文件到内存,然后执行一系列的加载&链接等工作。
T2:main()函数之后,即从main()开始,到appDelegate的didFinishLaunchingWithOptions方法执行完毕。
T3:加载首页,发送请求,解析数据,渲染页面。
存量问题
T1:执行大量的+load方法、加载无用的类和方法
T2:执行大量的启动项任务、同步I/O操作以及一些其他比较隐晦的耗时操作
T3:同步I/O操作以及一些其他比较隐晦的耗时操作
治理思路
冷启动性能问题的治理目标主要有三个:
解决存量问题:优化当前性能瓶颈点,优化启动流程,缩短冷启动时间。
管控增量问题:冷启动流程规范化,通过代码范式和文档指导后续冷启动过程代码的维护,控制时间增量。
完善监控:完善冷启动性能指标监控,收集更详细的数据,及时发现性能问题。
T2 - 启动项治理
1、分阶段启动
2、部分任务子线程处理
T1 - main之前的优化
流程:加载动态库、注册OC类、执行类的+load方法。
减少动态库的加载、清除无用类和无用方法、+load方法治理。
T3 - 业务治理
1、图片资源治理
2、减少I/O操作
3、优化布局
4、串行改并行
网友评论