美文网首页
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