启动优化

耗电

cpu 网络 定位 图像

优化:1,降低CPU,GPU功耗
2,少用定时器
3,优化I/O操作
4,大数据建议sqlite
5,减少,压缩网络文件

APP的启动

APP启动runtime所做的事情
1.调用map_images进行可执行文件的解析处理
2.在load_images中调用call_load_methods,调用Class和Category的+load方法
3.进行各种objc结构初始化(注册Objc类,初始化类对象等)
4.调用c++静态初始化器和attribute((constructor))修饰函数
到此为止可执行文件 和动态库中所有符号(Class,Protocol,Selector,IMP,....)都已经按格式成功加载到内存中,被runtime管理

启动优化

dyld:阶段
减少动态库,合并动态库 (清理不必要的动态库)
减少Objc类,分类的数量,减少Selector的数量
减少c++虚函数
Swift减少使用结构体

runtime
用+initialize方法喝dispatch_once取代attribute((constructor)),c++静态构造器,objc的+load

main
在不影响用户体验的前提情况下,尽可能将一些演示操作,不要全部放在finshLaunching中
按需加载

安装包瘦身

资源瘦身
编译器优化
APPCode检测未使用的代码

你可能感兴趣的:(启动优化)