内存性能内存及变量作用域iOS 内存优化调试

Instrument

2017-05-19  本文已影响85人  Thinkdifferents

Instrument是一个强大而灵活的性能分析和测试工具

是Xcode的附加工具组件之一, 主要用途如下:

  • leaks:找到引发内存泄漏的起点

1.选中Xcode先把程序跑起来

2.运行leaks (什么?你不知道leaks怎么开启?自己百度

3.由于Leaks是动态监测,所以我们需要手动操作APP,一边操作,一边观察Leaks的变化,当出现红色叉时,就监测到了内存泄露,点击右上角的第二个,进行暂停检测(也可继续检测,当多个时暂停,一次处理了多个).如图所示:


图3

4.下面就是定位修改了,此时选中有红色柱子的Leaks,下面有个"田"字方格,点开,选中Call Tree


图4

显示如下图界面


图4.1 5.下面就是最关键的一步,在这个界面的右下角有若干选框,选中Invert Call Tree 和Hide System Libraries,(红圈范围内)显示如下: 图5

6.到这里就算基本完成啦,这里显示的就是内存泄露代码部分,那么现在还差一步:定位!
选中显示的若干条中的一条,双击,会自动跳到内存泄露代码处,如图所示

图6
  • Core Animation:测试 核心动画屏幕刷新帧率

注意这个调试必须使用真机, 点击左上角的红色圆圈就会开始录制

  1. 这里记录了实时的fps数值, 有些地方为0 是因为屏幕没有滑动, 屏幕活动过程中数值一直保持在50+代表表格很流畅, 否则, 就是比较卡顿咯
  2. 调试选项
ps:有过游戏经验的人也许对fps这个概念比较熟悉。我们知道任何屏幕总是有一个刷新率,比如
iphone推荐的刷新率是60Hz,也就是说GPU每秒钟刷新屏幕60次,因此两次刷新之间的间隔为
16.67ms。这段时间内屏幕内容保持不变,称为一帧(frame),fps表示frames per second,
也就是每秒钟显示多少帧画面。对于静止不变的内容,我们不需要考虑它的刷新率,但在执行动画
或滑动时,fps的值直接反映出滑动的流畅程度。 

调试优化见--CSDN--

  • Time Profiler:分析代码的执行时间,找出导致程序变慢的原因

--有个哥们写了一个简书,特别详细--

  • ALlocations:检测内存使用/分配情况

同样有人也已经列出来了

  • Zombis:僵尸对象(MAC开发必备)

正在努力努力努力学习...

上一篇 下一篇

猜你喜欢

热点阅读