性能优化-app启动优化

2020-10-14  本文已影响0人  798798123

冷启动(cold launch):从零开始启动APP

热启动(warm Launch):APP已经在内存中,在后台存活着,再次点击图标启动APP

启动优化 - 主要针对冷启动进行优化

△通过添加环境变量可以打印出APP的启动时间分析(Edit scheme -> Run -> Arguments)
// 400ms以内算是比较正常的启动时间!
DYLD_PRINT_STATISTICS 设置为1 // 进入main函数之前的启动时间
DYLD_PRINT_STATISTICS_DETAILS // 总共的启动时间!

△APP的冷启动可以概括为3大阶段

到此为止,可执行文件和动态库中所有的符号(Class,Protocol,Selector,IMP,…)都已经按格式成功加载到内存中,被runtime管理

总结:
1、app的启动是有dyld主导,将可执行文件加载到内存,顺便加载所有的都依赖的动态库
2、并由runtime负责加载成objc定义的结构
3、所有初始化工作结束后,dyld就会调用main函数
4、接下来就是UIApplicationMain函数,AppDelegate的applicaiton:didFinishLaunchingWithOptions:方法

启动优化:
dyld

runtime

main

上一篇 下一篇

猜你喜欢

热点阅读