App 启动优化策略?最好结合启动流程来说

  1. App启动过程
  • 解析Info.plist

    加载相关信息,例如如闪屏

    沙箱建立、权限检查

  • Mach-O加载

如果是胖二进制文件,寻找合适当前CPU类别的部分

加载所有依赖的Mach-O文件(递归调用Mach-O加载的方法)

定位内部、外部指针引用,例如字符串、函数等

执行声明为attribute((constructor))的C函数

加载类扩展(Category)中的方法

C++静态对象加载、调用ObjC的 +load 函数

  • 程序执行

调用main()

调用UIApplicationMain()

调用applicationWillFinishLaunching

main之前的优化

动态库加载越多,启动越慢。

ObjC类越多,启动越慢

C的constructor函数越多,启动越慢

C++静态对象越多,启动越慢

ObjC的+load越多,启动越慢

main之后的优化

rootViewController及其childViewController的加载、view及其subviews的加载

具体做法可以打点记录各种vc view的初始化时间。

主要还是针对不同业务的优化,在我的项目中,有个后台串行的队列,去初始化各种不需要立即加载的资源,注册各种三方。

https://mp.weixin.qq.com/s/Kf3EbDIUuf0aWVT-UCEmbA

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容