iOS开发知识小集2019最新iOS面试(OC+swift)

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

2018-10-07  本文已影响16人  natewang
  1. App启动过程

如果是胖二进制文件,寻找合适当前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

上一篇 下一篇

猜你喜欢

热点阅读