美文网首页
APP启动优化

APP启动优化

作者: 爱玩基金的程序员 | 来源:发表于2020-05-27 23:44 被阅读0次

    启动优化有main之前和main之后

    1.main之前

    A.在Xcode中添加环境变量参数DYLD_PRINT_STATISTICS即可,这样运行APP时在控制台就会打印出pre-main花费的时间

    B.如果想打印详细的pre-main中各个过程花费的时间,可以再添加一个DYLD_PRINT_STATISTICS_DETAILS参数

    打印下项目的启动时间如下图:

    PS:如果你想打印dyld装载动态库的顺序,可以设置这个环境变量 DYLD_PRINT_LIBRARIES

    通过控制台的输出main()方法调用前,启动过程主要如下步骤:

    1.dylib(加载程序需要的动态库)

    2.rebase/binding()

    3.Objc setup(注册objc类)

    4.initializers(指加载load函数耗时)

    如何优化:

    1.合并一些动态库,减少动态库的引用,不需要的删除掉。Xcode中配置General—> Linked Frameworks and Libraries中使用不到的系统库不再引用

    2.+load方法中尽量不做操作,可以延迟在+initialize方法中(注:initialize能被重写,为了防止重复调用,使用懒加载或gcd来结合使用)。

    3.清理项目中冗余的类、category。对于同一个类有多个category的,建议进行合并。

    2.main之后

    1.将一些不影响首页展示的服务放到其他线程中去处理,或者延时处理和懒加载。延时处理可以监听Runloop的状态,当进入kCFRunLoopBeforeWaiting(即将休眠状态)再去处理任务,最大限度的利用CPU等系统资源。

         2、使用Xcode的Instruments的Time Profiler工具,分析启动过程中比较耗时的方法和操作,然后,进行具体的优化。

        3、重点关注TabBarController和首页的性能,保证尽快的能展示出来。这两个控制器及里边的view尽量用代码进行布局,不使用storyboard和xib,如果在布局上想更进一步的优化,那就连autolayout(Massonry)都不要使用,直接使用frame进行布局。

        4、本地缓存。首页的数据离线化,优先展示本地缓存数据,等待网络数据返回之后更新缓存并展示。

                                                (未完成)

    相关文章

      网友评论

          本文标题:APP启动优化

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