APP启动

2020-02-24  本文已影响0人  DoBetter1
  1. 启动分为2种:冷启动和热启动。
  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,网络请求优化(重复请求,缓存,排队等)

上一篇下一篇

猜你喜欢

热点阅读