性能测试指标

FPS

FPS : 帧率(一秒内平均画面刷新次数)
FrameTime : 单帧耗时(顾名思义,就是显示一帧需要花费的时间)
在这里插入图片描述
查看FPS命令:
1、dumpsys SurfaceFlinger --list找到当前Activity
在这里插入图片描述
使用dumpsys SurfaceFlinger --latency-clear清除数据
然后在,滑动界面后,使用dumpsys SurfaceFlinger --latency com.cvte.maxhub.settings/com.cvte.maxhub.settings.entrance.Settings#0
获取数据
在这里插入图片描述
可以看到一共显示3列数据,这就是从测试设备开始时间到现在的FPS数据,单位为纳秒;一共128行,三列,每列代表的含义都不同;
第一列:应用程序绘制图像的时间点
第二列:在软件将帧提交给硬件绘制之前的垂直同步时间
第三列:硬件接收完发来数据,绘制完成的时间点。

JANK

提到FPS,就肯定要说到JANK,JANK意思是卡顿,判断卡顿的方式

JANK:
同时满足两条件,则认为是一次卡顿Jank
①Display FrameTime>前三帧平均耗时2倍。(连续两次vsync时间没有渲染界面刷新)
②Display FrameTime>两帧电影帧耗时 (1000ms/24*2≈83.33ms)。

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

根据上面的判定方式
why:
为什么是两次vsync?
A: GPU一般是3重缓冲buffer,当前帧已占用一个buffer,即剩余2缓冲buffer,人眼一般可容忍2帧延迟
why:
为什么是两帧电影帧耗时?
A:低于24帧画面,人眼就能感知到画面不连续性,电影一般都是24帧。即电影帧耗时1000ms/24≈41.67ms,两帧电影帧耗时也就是41.67ms2,三帧电影帧耗时是41.67ms3。

Stutter (卡顿率)
Jank的基础上,一次Jank卡顿,会有一次卡顿时间Jank time。
测试过程中可能有多次Jank卡顿,即有多次卡顿时间Jank time。
测试总时长为Time
Stutter(卡顿率) = ∑ Jank time / Time

建议大家还是使用测试工具,例如perfdog等测试工具统一南区数据,简单快捷

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐