性能优化包括很多方面,如内存泄露,代码执行的时间,动画性能优化等,主要用到Instruments中的Leaks,Time Profiler,Core Animation等几个,但是,Instruments只能找出问题,而不能解决问题.
测试前的准备:
1.必须是真机,因为使用模拟器,mac的性能比手机的好很多
2.在工程中 Build Settings -> Debug Information Format 设置为DWARF with sHYM
File ,如果不设置,在后面查看哪个方法需要优化的时候,是由二进制代替方法,无法清楚的分析哪里出现问题.
一:Leaks:检测内存泄露
本文只列出结果,详情操作附加友情链接:
友情链接:
(一):http://www.jianshu.com/p/4b882f1bd1a9
(二):http://www.jianshu.com/p/65c1ce83e549
只需要点击 reveal in Xcode , 即可跳转到工程有问题的方法中,到此时,问题已经找到,但是解决问题需要靠自己.
二:Time Profiler: 时间事件查看器
用来计算函数运行的时间,可以找出耗时比较长的函数进行优化,从而减短响应的时间
友情链接:
(一): http://blog.csdn.net/xiaoxuan415315/article/details/56015289
(二): http://blog.csdn.net/xiaohe901216/article/details/70575232
三: Core Animation: 可以用来优化UI,优化动画
友情链接:
(一):http://blog.csdn.net/xiaofei125145/article/details/50614276
(二):http://www.cocoachina.com/ios/20161211/18341.html
选择参数:
1. Color Blended Layers(混合和过度绘制)
2. Color Offscreen-Rendered Yellow(离屏渲染)
3. ColorHitsGreenandMissesRed(光栅化缓存图层命中情况)
4. Color Copied Images(拷贝的图片)
5. Color Immediately(用来设置每帧都更新(可能会影响到渲染性能,而且会导致帧率测量不准,所以不要一直都设置它)
6. Color Misaligned Images(图片的不正常缩放)
7. Color OpenGL Fast Path Blue (对任何直接使用OpenGL绘制的图层进行高亮)
8. Flash Updated Regions(Core Graphics绘制的图层)
注意: 打开 Color Blended Layers 选项,那块区域会显示红色,所以我们调试的目的就是将红色区域消减的越少越好。那么如何减少红色区域的出现呢?只要设置控件不透明即可
(1)设置opaque 属性为true。
(2)给View设置一个不透明的颜色,没有特殊需要设置白色即可。