概念
1.热启动:就是按下home键的时候,app还存在一段时间,这时点击app马上就能恢复到原状态,这种启动我们称为热启动。
2.冷启动:app被kill掉之后,重新打开启动过程为冷启动。
优化
1.热启动优化。
一.数据优化,将耗时操作做异步处理。
二.检查NSUserDefaults的存储,NSUserDefaults实际上是在Library文件夹下会生产一个plist文件,加载的时候是整个plist配置文件全部load到内存中。所以非常频繁的存取大量数据也是有可能导致APP启动卡顿的
2.冷启动优化
利用DYLD_PRINT_STATISTICS分析main()函数之前的耗时
重新梳理架构,减少动态库、ObjC类的数目,减少Category的数目
定期扫描不再使用的动态库、类、函数,例如每两个迭代一次
用dispatchonce()代替所有的__attribute__((constructor))函数、C++静态对象初始化、ObjC的+load
在设计师可接受的范围内压缩图片的大小,会有意外收获
利用锚点分析applicationWillFinishLaunching的耗时
将不需要马上在applicationWillFinishLaunching执行的代码延后执行
rootViewController的加载,适当将某一级的childViewController或subviews延后加载
如果你的App可能会被后台拉起并冷启动,可考虑不加载rootViewController