美文网首页
iOS app启动如何优化?

iOS app启动如何优化?

作者: 搬砖公 | 来源:发表于2019-05-19 14:30 被阅读0次

1.main函数之前系统做了那些事?
dyld(动态链接器)
-> 读取镜像文件,递归查找动态库
->ImageLoader将其加载到内存中
->rebase/bind修复镜像中的资源指针,来指向正确的地址
->dyld通知runtime
->map_image去解析和处理该镜像资源(注册Objc类,处理Category等)
->调用load_image,遍历调用类的load方法,调用C++的构造函数属性函数,创建非基本类型的C++静态全局变量等

  1. 我们可以通过在 Xcode 中 Edit scheme -> Run -> Auguments 将环境变量
    DYLD_PRINT_STATISTICS 设为 1,在控制台看到main()函数之前的启动时间。
  2. 分解优化⽬标 分步达到优化⽬的
    1). 耗时操作异步处理
    2). 如果启动流程依赖⽹络请求回来才能继续,那么需要考虑⽹络极差情况下的启
    动速度
    3). 如果APP有loading⼴告⻚并且对分辨率的要求较⾼,请尝试做缓存吧
    4). 主⻚⾯Controller中的viewDidLoad和viewWillAppear⽅法中尽量少做事情
    5). 排查清理项⽬中未使⽤到的类库以及Framework
    6). 删减合并⼀些OC类,删减没有⽤到或者可以不⽤的静态变量、⽅法等
    7). 轻量化+load⽅法中的内容,可延迟到+initialize中

相关文章

网友评论

      本文标题:iOS app启动如何优化?

      本文链接:https://www.haomeiwen.com/subject/aqrmvqtx.html