zoukankan      html  css  js  c++  java
  • iOS性能检测工具instrunments简单介绍

    1、前提条件

     在appstore中下载安装xcode

    2、打开方式

    3、页面元素介绍

    3、电脑连接手机选中要测试的app

    4、选中要测试哪项,双击进去,点击开始进行监控测试

    5、主要介绍一下三项

    第一个:Core Animation(核心动画) 

    Core Animation工具是用来检测Core Animation性能的,我主要用来看fps(一秒钟渲染多少帧 Frame Per Second = FPS),也就是滑动时查看界面是否卡顿。

    一般FPS是60左右,过于低的话需要进行优化,当低于45时,用户一般是可以觉察到卡顿的,当低于20时,卡顿是特别明显,甚至影响使用了(之前测试过个位数fps,那感觉想让我摔手机)。

    举例如图:

    当停止不动时,fps为0.开始滑动时,fps会不断变化。

     
     

    PS:这里测试界面卡顿,还有另一种更便捷的方法,借助第三方封装的一个label,可以在界面实时看到fps,而不需要借助Instruments。

    下载地址:Github地址

    第二个:Leaks(内存泄露)

    这个也比较常用,用来查看app运行期间,那些代码产生内存泄露。

    内存泄露 memory leak,是指程序在申请内存后,无法释放已申请的内存空间,一次内存泄露危害可以忽略,但内存泄露堆积后果很严重,无论多少内存,迟早会被占光。

     
     
     
     
     
     

    PS:如果找不到,可能移到底部区域了,如下图:(xcode新版本会这样布局)

     
     

    其中,绿色勾表示运行正常,没有内存泄露,如果有泄露,会自动显示❌,下面我找一张有泄露的图

     
     

    按照我上面的方式设置完,点击❌,会定位到代码处,我们就能看到具体大概到代码位置了,然后对应去修改。

    PS:这里我讲一点可能很多人没注意到一个点,就是关于AFNetworking3.0下存在的内存泄露。

    如果你在每次使用时,都是重新

    AFHttpSessionManager *sessionManager = [AFHttpSessionManager manager];

    可能就会有这种问题,不管你是直接使用,还是封装后使用,只要用的时候是每次都申请一下sessionManager,就会有这种问题。

    解决办法就是:对sessionManager进行单例处理,就可以避免。

    参考文章戳这里:

    AFNetworking3.x容易出现内存泄露的地方

    利用Instruments中的Leaks处理内存泄露

    第三个:Time Profiler(时间分析器)

    用来检测app中每个方法所用的时间,并且可以排序,并查找出哪些函数占用了大量时间。

    页面如下:

     
     

    我测试等demo内容比较少,所以数据不多,测试的时候,勾选右边红框 

    Separate by Thread:每个线程被单独考虑。这能让你知道哪一个线程占用CPU最多。

    Invert Call Tree:选中该选项后,调用栈会自上至下显示。这通常是你需要的,因为你想知道CPU花费时间的那个最深的方法。

    Hide System Libraries:选中该选项后,只有你自己app中出现的符号会被显示出来。

    然后就可以分析代码各阶段或者具体代码分别执行多长时间了。



  • 相关阅读:
    BNUOJ 12756 Social Holidaying(二分匹配)
    HDU 1114 Piggy-Bank(完全背包)
    HDU 2844 Coins (多重背包)
    HDU 2602 Bone Collector(01背包)
    HDU 1171 Big Event in HDU(01背包)
    HDU 2571 命运 (入门dp)
    HDU 1069 Monkey and Banana(最长递减子序列)
    HDU 1160 FatMouse's Speed (最长上升子序列)
    HDU 2594 KMP
    POJ 3783 Balls --扔鸡蛋问题 经典DP
  • 原文地址:https://www.cnblogs.com/lxmtx/p/12350293.html
Copyright © 2011-2022 走看看