app启动优化

100 阅读1分钟

pre-main main

资源浪费!优化都是毫秒级别的。 在启动之后多开子线程,尽量让CPU的性能发挥到极致

  1. dylib loading time:25.65 mmilliseconds(5.9%) ->动态库载入 苹果的系统动态库已经载入到内存,系统共享缓存空间;已经做了优化,自定义动态库没有这种待遇;apple建议尽量减少自定义动态库数量;尽量不要大于6个,否则要合并动态库。

  2. rebase/binding time: 178.54 milliseconds(41.6%) 虚拟内存

  3. ObjC setup time: 1944.22 milliseconds(45.2%) -> OC OC runtime要维护一张映射表 类注册->启动时所有的类都要注册到全局的表里(类名表、),包含类的property 、 protocol、 category等要插入到方法列表里面去。这些事会造成耗时。 只要类在项目中,就会造成启动时间的消耗。如果要维护老项目,最好能把不需要的类 剔除;减少耗时

  4. initializer time:30.73 milliseconds(7.1%) 执行load、构造函数的耗时 在load、initializer时不要做太多延迟加载的事情。尽可能把消耗的事放到子线程;