跳转到主要内容

初识PerfDog

demi 提交于

<a href="https://mp.weixin.qq.com/s/vndrlsWspZFaQzWB6CJQZw"><font color="#9a9a9a">来源:<u>搜狗测试 - 木子林夕园 </u></font></a>

本文将向大家介绍一款性价比较高的性能评测工具——PerfDog,这是腾讯旗下的一款移动全平台iOS/Android性能测试及指标分析工具平台,简而言之就是测试采集手机在运行App时的性能指标数据:FPS、Jank、FTime、CPU、GPU、Memory、Battery 、Network、CTemp等性能参数,从而快速定位分析App的性能问题,在这里主要介绍下相关名词含义、使用技巧及案例分析。

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>一、名词解释</strong></font>

<font style="line-height: 40px;"><strong>1、流畅度相关</strong></font>

<font color="#c200ff">1)FPS(Frames Per Second的简称缩写),

意思是每秒传输帧数,也可以理解为1秒内游戏画面或者应用界面真实平均刷新次数,俗称帧率/FPS,一般每秒钟帧数越多,所显示的动作就会越流畅,FPS值越低就越卡顿,所以这个值在一定程度上可以衡量应用在图像绘制渲染处理时的性能。通常,要避免动作不流畅的最低阈值是30/FPS,iOS系统中正常的屏幕刷新率为60Hz(60次每秒)。

<font color="#c200ff">2)Jank(1秒内卡顿次数)&BigJank(1秒内严重卡顿次数),

PerfDog Jank计算方法:

同时满足下述两个条件,则认为是一次卡顿Jank:
①Display FrameTime>前三帧平均耗时2倍。
②Display FrameTime>两帧电影帧耗时 (1000ms/24*2=84ms)。

同时满足下述两个条件,则认为是一次严重卡顿BigJank:
①Display FrameTime>前三帧平均耗时2倍。
②Display FrameTime>三帧电影帧耗时(1000ms/24*3=125ms)。

<font color="#c200ff">3)Stutter(卡顿率)

PerfDog Stutter定义:测试过程中,卡顿时长的占比。即Stutter(卡顿率)=卡顿时长/总时长。

PerfDog Stutter计算思路:基于PerfDog Jank的基础上,一次Jank卡顿,会有一次卡顿时间Jank time。测试过程中可能有多次Jank卡顿,即有多次卡顿时间Jank time,测试总时长为Time。

Stutter(卡顿率)=∑Jank time/Time。

说明:Jank为卡顿次数,Stutter为卡顿率,Jank和Stutter趋势有一致性,但并非完全线性,因为每次Jank卡顿严重性是不一样的。同时也说明了:没有Jank卡顿出现,卡顿率自然也就是0了。

<font style="line-height: 40px;"><strong>2、CPU使用相关</strong></font>

(1) CPU Usage(TotalCPU表示整机CPU使用率,AppCPU表示进程CPU使用率),
CPU使用率其实就是运行的程序占用的CPU资源,表示机器在某个时间点的运行程序的情况。

<font style="line-height: 40px;"><strong>3、内存占用相关</strong></font>

(1) Memory (是统计FootPrint,注:OOM与FootPrint有关,与系统、机型无关,只与RAM有关)。

(2) Xcode Memory (XCode Debug gauges统计方式即XCode Memory)。

(3) Real Memory(Xcode Instrument统计方式即Real Memory,实际占用物理内存。)
物理内存系统策略有关,衡量内存指标时不会关注,但是它有助于分析定位整体性能问题。比如:footprint没有降低,说明应用没有释放内存,但是real memory却降低了,说明系统对内存做了压缩。由于压缩会占用CPU资源,同时会导致FPS降低。

4) Virtual Memory(虚拟内存)是计算机系统内存管理的一种技术。它使得应用程序认为它拥有连续可用的内存(一个连续完整的地址空间),而实际上它通常是被分隔成多个物理内存碎片,还有部分暂时存储在外部磁盘存储器上,在需要时进行数据交换。

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>二、使用技巧</strong></font>

<font style="line-height: 40px;"><strong>1、性能参数控制Page</strong></font>

点击"+"按钮,选择需要收集性能参数,控制性能参数显示page:

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-12/%E5%8D%9A%E5%AE%A2/100556533-23…; alt="初识PerfDog"></center><br>

<font style="line-height: 40px;"><strong>2、添加批注</strong></font>

整个测试过程我们经常会遇到很多场景,每个场景的性能数据一般都会各有不同,所以为了在报告中看的更明显,我们可以增加批注,比如标记关键节点等过程中经常会遇到各种情况,双击屏幕即可弹出标注编辑窗,输入标注名称保存即可:

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-12/%E5%8D%9A%E5%AE%A2/100556533-23…; alt="初识PerfDog"></center><br>

<font style="line-height: 40px;"><strong>3、场景添加标签</strong></font>

为了明显区分不同测试场景下的性能参数变化情况,我们可以对阶段时间添加不同的标签,鼠标左键双击上方的label1标志,点击右侧区域icon,可新增标签:

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-12/%E5%8D%9A%E5%AE%A2/100556533-23…; alt="初识PerfDog"></center><br>

更多小技巧可参考PerfDog官网(https://bbs.perfdog.qq.com/article-detail.html?id=5) ~

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>三、案例分析</strong></font>

以小编所在项目组某个功能为例,对FPS、CPU使用率及内存占用率进行分析。

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-12/%E5%8D%9A%E5%AE%A2/100556533-23…; alt="初识PerfDog"></center><br>

冷启动首次进入功能页面时,FPS=60,且在该页面操作过程中稳定维持在60左右,无卡顿情况,退出页面后更新为0;AppCPU在使用过程中维持在6%~8%,退出页面后逐渐下降为0%;进入页面前内存53M,使用过程中内存峰值为69M,退出页面后内存稳定在60M左右,增长7M,由此可见内存逐渐回收,再次进入该页面 FPS、CPU使用率、内存占用率如下图所示:

<center><img width="600" src="http://imgtec.eetrend.com/files/2021-12/%E5%8D%9A%E5%AE%A2/100556533-23…; alt="初识PerfDog"></center><br>

进入该页面前内存恢复至初始,使用过程中逐渐升高至57M,退出时回收至56M,增长7M左右。

<font size="3" style="line-height: 45px;" color="#c200ff"><strong>总结</strong></font>

以上是小编在使用PerfDog时的心得总结,内容较简单,有性能评测诉求的小伙伴可以去官网下载体验,PerfDog为新手用户提供了详细的用户手册,上手较快~

<a href="https://mp.weixin.qq.com/s/vndrlsWspZFaQzWB6CJQZw"><font color="#9a9a9a">来源:<u>搜狗测试 - 木子林夕园 </u></font></a><font color="#9a9a9a">,转载此文目的在于传递更多信息,版权归原作者所有。如不支持转载,请联系小编demi@eetrend.com删除。</font>