APM
首先查看各个阶段耗时 : (环境变量设置 dyldPRINTSTATISTICS = 1选项,)
1. 启动优化
关键: 找到耗时的原因
t总 = t1 (premain) + t1(main之后)
t1: premain
过程:
1.先加载可执行文件(所有.o文件的集合)
2.加载动态链接库(所有系统的framework, 比如UIKit、Foundation等都是以动态链接库 的方式集成进App中的)
tip: 动态库好处: a.在内存中只有一份, 所有进程共享系统库
b.相比静态库, 编译时不需要打进去
3. oc类的加载/初始化 +load 方法
优化:
1.减少不不要的framework
2. framework应当设为optional和required (支持的所有iOS系统版本)
3.合并或删减一个oc类, 清理没用的类, 使用Appcode检查
4删减无用的静态变量
5删减无用的废弃的方法
6不必要在+load方法中做的事 延迟到+initialize中
t2: main() 之后
过程:
1.初始化相关服务(三方库等)
2.显示首页(优化也是围绕着如何快速展现首页来做)
优化:
1. 代码方式加载首页视图, 不用xib
2. 异步:启动时的网络请求
3.异步: 初始化第三方服务
2.耗电
2.1 Energ Impact 查看概况
2.2细致验证 instrument - energy log (+配合timeProfile 抓看代码运行细节)
优化:
a.cpu优化, 尽可能将次cpu功耗, 尽可能减少定时器的使用
b.网络请求优化 ,减少长连接等
c.定位优化 - 及时关闭
d.硬件检测优化 - 加速计 陀螺仪等吗, 及时关闭
3. 内存泄漏
instrument- Leaks
4.内存开销
instrument - Acllocations 检测内存使用/ 分配情况
5.耗时 (代码运行细节)
instrument - timeprofile
<style></style>