美文网首页
启动时间

启动时间

作者: 资源的搬运工 | 来源:发表于2019-04-04 11:14 被阅读0次

    pre-main time

    用到的系统的动态库的数量,比如 UIKit.framework 等

    cocoapods 里引用的第三方框架数量

    项目中类的数量

    load 方法中执行的代码

    +load

    framework req 换成opti

    大量线程开销 启动时候减少线程数量

    io的消耗

    动态库加载越多,启动越慢。

    ObjC类越多,启动越慢

    C的constructor函数越多,启动越慢

    C++静态对象越多,启动越慢

    ObjC的+load越多,启动越慢

    实验证明,在ObjC类的数目一样多的情况下,需要加载的动态库越多,App启动就越慢。同样的,在动态库一样多的情况下,ObjC的类越多,App的启动也越慢。需要加载的动态库从1个上升到10个的时候,用户几乎感知不到任何分别,但从10个上升到100个的时候就会变得十分明显。同理,100个类和1000个类,可能也很难查察觉得出,但1000个类和10000个类的分别就开始明显起来。

    同样的,尽量不要写__attribute__((constructor))的C函数,也尽量不要用到C++的静态对象;至于ObjC的+load方法,似乎大家已经习惯不用它了。任何情况下,能用dispatch_once()来完成的,就尽量不要用到以上的方法

    相关文章

      网友评论

          本文标题:启动时间

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