美文网首页
启动优化

启动优化

作者: 幻如常 | 来源:发表于2019-03-14 19:36 被阅读0次

    如何提高APP的启动速度

    APP的启动包括三个步骤

    • main函数执行前
    • main函数执行后
    • 首屏渲染完成后

    如何优化

    main函数执行前:

    首先main函数执行前做了哪些事情:
    (1) 加载可执行文件(个人理解:就是机器码的集合以及一些相关的东西,也就是APP的.o文件的集合)
    (2) 加载动态链接库,进行rebase指正调整和bind符合绑定
    (3) OC的运行时初始处理,包括oc相关类,分类的注册.selector的唯一性检查等
    (4) 初始化,包括执行了load方法,atrribute((constructor))修饰的函数的调用,创建c++静态全局变量

    优化方法

    (1) 减少动态库加载,每个库都有依赖关系,苹果建议尽量少使用动态库,有多个动态库时尽量将其合并,苹果支持最多6个非系统动态库的合并
    (2) 减少加载启动后不会去使用的类或者方法
    (3) +load()方法里的内容可以放到首屏渲染结束后再去执行,或者放到initialize方法中去执行,因为+load()方法中进行运行时方法替换时会有4毫秒的消耗
    (4) 减少C++全局变量的数量

    main函数执行后:

    main函数执行后做了哪些事情(main函数执行后是指从main函数执行开始一直到appdelegate中的didFinishLaunchingWithOptions方法中首屏渲染相关方法执行完成):
    (1) 首屏初始化所需配置文件的读写操作
    (2) 首屏列表大数据的加载
    (3) 首屏渲染大量的计算

    优化的方法便是分清楚哪些是启动,首屏渲染,其他地方需要初始化的功能,不要统一放在启动和首屏渲染时

    首屏渲染结束后:

    这个阶段主要是处理非首屏其他业务服务板块的初始化,监听的注册,配置文件的读取,就是从首屏渲染结束后到didFinishLaunchingWithOptions方法结束

    优化的方法便是注意那些可能卡主主线程的方法,其他不需及时执行的功能不要放在这里

    相关文章

      网友评论

          本文标题:启动优化

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