APP启动
2020-02-24 本文已影响0人
DoBetter1
- 启动分为2种:冷启动和热启动。
- 启动的时间分为两部分:main函数执行之前(加载dyld,加载类文件,协议,分类,load方法等),main函数到应用启动完成。
启动优化建议
main函数之前
减少动态库,合并一些动态库
减少Objc类,分类的数量,减少Selector数量
main函数值到应用启动完成
耗时操作,不啊哟放在finishLaunching方法中
查看main函数启动之前使用时间:
添加 DYLD_PRINT_STATISTICS
重新运行项目打印如下:
可以看到main函数之前每个部分所用的时间
缩减ipa包工具:Link Map(可以看到所有文件缩减的情况)
如果想检测哪些文件没用到可以使用:LSUnusedResources(用的人很多)
异步渲染:最开始是FB提出来并且使用在了框架anycdisplaykit-texture,YYKit作者结合FB框架写出了异步渲染框架。(原理就是不在主线程渲染,而是在子线程渲染GPU和CPU处理,然后到主线程显示 )
卡顿处理:复杂页面可以使用异步渲染,YYKit,封装一些公控件,打开FPS检测。
网络优化 DNS,网络请求优化(重复请求,缓存,排队等)