一、IOS
-
ScreenShot
(只支持USB模式,部分机型可能影响性能) -
FPS
(1秒内界面平均刷新次数,俗称帧率/FPS)
1)Avg(FPS)
:平均帧率
2)Var(FPS)
:帧率方差
3)Drop(FPS)
:降帧次数(平均每小时相邻两个FPS
大于8帧的次数) -
Jank
(1s内卡顿次数。ios9.1以下系统暂不支持。)
类似ios的FramePacing
平滑度统计原理
平均帧率与卡顿无直接关系
PerfDog
Jank
计算方法:
- 同时满足以下2条件,则认为是一次卡顿
Jank
a) 当前帧耗时>前3帧平均耗时2倍
b) 当前帧耗时>2帧电影帧耗时(1000ms/24*2=84ms)
注:电影的帧率是每秒24帧- 同时满足2条件,则认为是一次严重卡顿
BigJank
a) 当前帧耗时>前3帧平均耗时2倍
b) 当前帧耗时>3帧电影帧耗时(1000ms/24*3=125ms)
1)BigJank
:1s内严重卡顿次数
2)Jank(/10min)
:平均每10分钟卡顿次数
3)BigJank(/10min)
:平均每10分钟严重2卡顿次数
Stutter
:测试过程中,卡顿时长的占比-
FTime
:上下帧画面显示时间间隔,即认为帧耗时(ios9.1以下系统暂不支持)
1)Avg(FTime)
:平均帧耗时
2)Delta(FTime)
:增量耗时(平均每小时两帧之间时间差)
CPU Usage
(TotalCPU
表示整机CPU使用率,AppCPU
表示进程CPU使用率,统计结果和Xcode一致,PerfDog使用率=Xcode使用率/核心数)
注:ios平台CPU Usage是未规范CPU使用率
Memory
:统计FootPrint
,即<计算机>占用空间,访存足迹
FootPrint
与OOM
有关,与系统、机型无关。FootPrint
超过650MB,引发OOM
注:OOM
,即OutOfMemoryError
,即内存溢出
注:PerfDog暂时在ios9、10系统无法获取,其他版本ok
1)Xcode Memory
:XCode Debug gauges
统计方式(ios9、10无法获取)
2)Real Memory
:Xcode Instrument
统计方法,实际占用物理内存
注:物理内存系统策略有关,衡量内存指标时不会关注,但是它有助于分析定位整体性能问题。比如:footprint
没有降低,说明应用没有释放内存,但是real memory
却降低了,说明系统对内存做了压缩。由于压缩会占用CPU
资源,同时相应会导致FPS
降低
3)Virtual Memory
:虚拟内存
4)Available Memory
:整机可用剩余内存Wakeups
:线程唤醒数
超过150进程很有可能会被系统kill
注:ios13.2闷杀后台进程事件,建议重点关注CSwitch
:上下文切换测试。
注:单核超过14000进程会被系统KillGPU Utilization
1)Render
:渲染器利用率(像素着色处理阶段,若占比高,说明是PS
阶段出现瓶颈,shader
过于复杂或纹理大小、采样复杂等)
2)Tiler
: Tiler利用率(顶点着色处理阶段,若占比高,说明是VS阶段出现瓶颈,顶点数太多等原因)
3)Device
:设备利用率(整体GPU利用率)-
Network
(Recv/Send
,测试目标进程流量,统计结果合Xcode一致)
注:USB测试模式
下是app的,WiFi测试模式下可能是整机可能是app
BTemp
:电池温度Battery Power
:仅WIFI模式
,整机实时Current电流、Voltage
电压、Power功耗)
注:20s获取一次,目前最精准的统计方式,结果和Battery life结果一致,支持所有iOS机型
注:Sum(Battery)
是耗电量。Energy Usage
:Xcode Energy Impact
。监控应用使用的能耗情况(包括CPU、GPU、NetWork、Location、Display (iPhone X only)、Overhead
)。
注:和Xcode Energy Impact
结果一致。有线模式
下测试,支持iOS9及以上系统。
Total Energy<=270为Low,270<Total Energy<=1000为High,Total Energy>1000为Very High。
注: Overhead?
-
Log日志采集(WIFI模式下,不支持Log收集)
二、Android
注:与ios相同项则不再说明
ScreenShoot
-
FPS
补充1:游戏、直播、视频、小游戏等类型应用,PerfDog默认获取的是SurfaceView
的FPS;其他或web则获取的是Activity帧率
。
补充2:一般Android主窗口Activity和与之对应的View,有一种特殊的View,如SurfaceView,他会独享一个Surface,不与主窗口共享Surface,独立渲染非常高效,支持OpenglES渲染。也就是说可能会出现两类窗口FPS。一个是Activety窗口帧率和SurfaceView窗口帧率。
PerfDog中入口:下拉测试应用,鼠标在应用列表中选择被测应用就ok -
InterFrame
:(仅android的部分机型)动态补帧/插帧技术,部分机型支持,真实反映1秒内插入的帧数
-Jank
Shutter
FTime
CPU
-
CPU Usage
2)CPU Usage(Normalized)
,规范化CPU利用率,android独有
3)CPU Clock
:各个CPU核心的未规范化频率和未规范化使用率
-
Memory
:PSS Memory
,即Proportional Set Size Memory
,统计结果和Android Java API标准结果一致,与Meminfo也一致。
注:部分三星机器系统修改了Meminfo底层统计方式,导致Meminfo与Java AP统计结果不一致,新出三星机器已修复
1)Swap Memory
:Swap Memory
,部分设备支持Swap功能,在启用Swap功能后,系统会对PSS内存进行压缩,Swap增加,PSS会相应减少,由于压缩会占用CPU资源,同时相应会导致FPS降低
2)Virtual Memory
(VSS
)
3)Available Memory
4)Memory Detail
(NativePSS、GFX、GL、Unknown)
注:在极限测试情况下,例如开启游戏超高帧率,建议不要勾选收集Memory Usage和Memory Detail,因为部分机型会有性能损耗。
-
GPU Usage
(目前仅支持部分手机)。 -
GPU Frequency
(目前仅支持部分手机)。 -
Network
:Recv/Send,测试目标进程流量
注:USB/WiFi测试模式下均为APP数据 -
CTemp
:CPU温度
-
Battery Power
:仅WIFI模式
,Current电流、Voltage电压、Power功耗)
注1:Sum(Battery)是耗电量;未兼容设备可以电流x2进行容错。
-Log
详见:(https://bbs.perfdog.qq.com/article-detail.html
](https://bbs.perfdog.qq.com/article-detail.html)