概念
1.热启动:就是按下home键的时候,app还存在一段时间,这时点击app马上就能恢复到原状态,这种启动我们称为热启动。当 APP 启动时需要的 dylibs 仍然停留在设备的磁盘缓存的时候,这个时候就是热启动,热启动的速度会更快。
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