我的博客搬家了
使用Xcode自带的Instruments工具,检测CPU
Instruments
打开Instruments:Xcode -> Product -> Profile 或者 cmd + i
启动后如下:
其中常用的有用来检测内存泄露的Leaks和查看CPU消耗情况的Time Profiler。下面介绍查看CPU使用情况的Time Profiler
Time Profier
- 打开Time Profier
要查看每个函数的CPU性能,直接双击函数就可以定位到代码了。
函数前面的数值是所用时间,可以根据这个时间判断是是否需要优化。
有了上面的基础知识就可以对App的CPU消耗情况进行实时检测了。
常见的对CPU消耗过高的操作
- 加载图片
两种不同方式在相同时间内的CPU消耗情况对比:
并且,使用5s真机测试以下代码40s后Memory过高造成闪退,但是使用imageWithContentOfFile
数分钟后没有出现闪退现象
while (1)
{
[UIImage imageNamed:@"58_58"];
}
- 初始化对象
- 正则表达式
-
时间戳
在需要多次使用的地方尽量只初始化一次,然后多次使用
- 视图布局
/-(void)layoutSubviews
{
// do something
}
[view setNeedsLayout];
[view layoutIfNeeded];
这些函数尽量不要使用。每对view进行一次重新布局就会对CPU增加很多消耗。
- 绘制图层
需要用到
[layout rendInContext:]
的地方尽量换成iOS7以后新增的方法:
[view drawViewHierachyInRect:]
性能同样可以获得很大的提升