App启动优化

2021-05-24  本文已影响0人  cmjdmx

app启动分为冷启动和热启动两种。所谓的冷启动和热启动主要取决于该app进程是否在系统中。我们主要考虑的是冷启动的优化,因为这才是一个完整的启动过程,热启动中我们能干涉的其实很少

Total pre-main time:  17.00 milliseconds (100.0%)
         dylib loading time: 140.89 milliseconds (828.5%)
        rebase/binding time: 126687488.7 seconds (247154424.8%)
            ObjC setup time:  16.27 milliseconds (95.7%)
           initializer time:  57.75 milliseconds (339.6%)
           slowest intializers :
             libSystem.B.dylib :   3.70 milliseconds (21.7%)
   libBacktraceRecording.dylib :   5.09 milliseconds (29.9%)
               libobjc.A.dylib :   1.01 milliseconds (5.9%)
                CoreFoundation :   1.24 milliseconds (7.3%)
                    Foundation :   0.35 milliseconds (2.1%)
    libMainThreadChecker.dylib :  43.83 milliseconds (257.7%)
        libLLVMContainer.dylib :   1.18 milliseconds (6.9%)

优化建议
只处理首屏渲染相关的任务,其他非首屏的业务例如初始化、注册监听、配置文件的读取等等都放在首页渲染完成之后去做,当然也可以开辟一个线程去处理这些事情。尽量不要占用主线程
自己的业务逻辑的优化,已经废弃的不需要用的逻辑代码、方法、函数都删除掉,减少每个流程的耗时
启动时期的页面尽量避免使用xib、storyboard(中间会有个转换的过程也是需要耗时的)UI的主框架尽量使用纯代码

【参考】https://juejin.cn/post/6965495023924330504

上一篇 下一篇

猜你喜欢

热点阅读