首页 > 代码库 > ios测试必备技能, Instruments - Allocation测试内存

ios测试必备技能, Instruments - Allocation测试内存

   个人觉得, 对于专项的测试, 万变不离其宗的是策略,或者说是方案的设计.  对于执行步骤-预期结果等等这都是设计的过程中最为重要的, Apple为Ios的开发者提供了Instrument这个强大的工具箱,然而工具的使用不能说是自己已经学会了专项的技术, 策略永远是重点.

 

测试开始:

1 下面执行测试的是我自己写的一款APP,不如所料的是存在问题的(笔者开始学OC不久,而且之前都是脚本语言较多,对于移动端的测试略少,所以才开始学习OC),我们将使用Allocation进行内存测试

 

2 了解需求,制定测试方案(自导自演~~):

  1)需求:炫彩动图大师(实际内容并没有这么酷 - -),是一款自我定制(因为我常晚睡,想帮忙催眠下自己)

  技术分享

    @1,通过独有的精彩选图,被自己喜欢的音乐催眠,让自己轻松的入睡,(定制的,因为我就这么2 - - 好哄)

    @2,点击上一张,下一张,切换选gif图,音乐也随之切换.

  2)测试方案: <测试步骤>点击下一张,mark一下内存,持续4-5次后, 观察内存. <预期结果>不存在内存增长

3 执行测试:

  1)打开allocation

    技术分享->                                技术分享  <Allocation>

  2)选择app-并且观察策略改为Generations,然后点击左上角红点 -> 开车

  技术分享  

  3)执行:

  技术分享

    @1 启动app,待稳定后-点击一下mark

    @2 点击<下一张>,稳定后mark(这里的稳定后,可以通过上方的观察界面图形,看到稳定值)

    @3 重复第二步4-5次

    @4 点击左上角关闭,进入分析

    

  4) 分析:

    技术分享

    @1 如上图看出,每次执行后这里都存在的增量约为1M左右, 中间的我们参考从第二开始.

    @2 一般来说,第一次mark是启动之后,这里存在的值可能存在部分常驻单例, 所以不应该设计考虑,所以我们都是第二个mark开始

    @3  点开2-3-4-5的mark.(最底下选择All VM Regions)

      技术分享

    @4 如图可以看到,每一个mark都有个存在一个VM:MALLOC_LARGE就是我们每次增量的大头,而他也就是我们内存增长的原因

      技术分享

    @5 现在,将他点开,可以看到,本次需求的内存大头是它

      技术分享

 

 

(大家别注重我的初学者app代码,写个示例真的还是勉强, 我也会加强我的OC能力的,共勉哈)

这就是Allocation在我平时工作中的使用,但,测试, 永远重在沟通.

  

    

 

ios测试必备技能, Instruments - Allocation测试内存