移动性能测试 Android 性能测试初探 (四)

卡斯 · 2014年02月19日 · 最后由 liyan365221870 回复于 2018年11月02日 · 6458 次阅读
本帖已被设为精华帖!

书接上文 Android 性能测试初探(三)

自从 cpu 及内存后,GPU 这个词对于 PC 性能测试者也不陌生了,什么 3Dmax,安兔兔之类的第三方软件让 GPU 在移动端性能测试领域都知晓,但对于应用的 GPU 该如何来测试呢,我们先引入几个名词:

  • 过度绘制
  • 帧率
  • 帧方差

过度绘制是指界面显示的 activity 套接了多层而导致。帧率是指屏幕刷新率。帧方差是指屏幕刷新帧间隔方差。

对于 GPU 的测试主要包括以下几个测试子项

  1. 界面过度绘制
  2. 屏幕滑动帧速率
  3. 屏幕滑动平滑度

对于过度绘制的测试主要通过人工进行测试,通过打开开发者选项中的 显示 GPU 过度绘制 来进行测试(PS:只有 android4.2 及以上的版本才具备此功能),验收的标准为:

  1. 不允许出现黑色像素
  2. 不允许存在 4x 过度绘制
  3. 不允许存在面积超过屏幕 1/4 区域的 3x 过度绘制(淡红色区域)

对于屏幕滑动帧速率主要有 2 种方法。

先说说软件测试的方法:

1.手机端需打开开发者选项中的 启用跟踪 后勾选 GraphicsView
2.启动 SDK 工具 Systrace 插件,勾选被测应用,点击 Systrace 插件,在弹出的对话框中设置持续抓取时间,在 trace taps 下面勾选 gfx 及 view 选项,
3.人滑动界面可以通过节拍来进行滑动或者扫动,帧率数据会保存到默认路径下,默认名称为 trace.html

4.将 trace.html 文件拷贝到 linux 系统下 通过命令进行转换,生成 trace.csv 文件

grep 'postFramebuffer' trace.html   | sed -e 's/.*]\W*//g' -e 's/:.*$//g' -e 's/\.//g' > trace.csv 

5.用 excel 打开文件计算得到帧率

接下来我们说说硬件的方法,这里需要引入高速相机,打开高速相机,开启摄像模式,录制人滑动或者扫动被测应用的视频,再通过人工或者程序数帧的方法对结果进行计算得到帧率

对于屏幕滑动平滑度的测试,方法如同帧率测试,唯一的差异就是最后的结果计算公式的差异

GPU 的测试目前业界使用的均为硬件来进行,软件测试的数据相较硬件差异较大,对于帧率及帧方差的测试标准而言,需对待不同机型设定不同的标准

好了,对于 GPU 方面的测试介绍到此,相信大家对于这块不会陌生了:)

预知下文,请听下回分解

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 15 条回复 时间 点赞

辛苦了 高产啊 大牛

能给个报表类型的东西看看么?

报表类型 具体指啥

#3 楼 @kasi 给老板看的性能报表~

给老板看的肯定就不能放出来了,

Cool! 连大致的基准都放出来了~~!点 32 个赞~

hello,能不能贴一下你们的文档,想看看你们的格式啊,规范啊之类的东西,先谢过

就是性能测试报告

卡斯 #11 · 2014年05月29日 Author

文档属于公司信息 不能提供

你好,问一下硬件测试用的什么设备,能介绍一下吗

请问下帧方差怎么计算,作用又是什么呢?谢谢!

对于过度绘制这块我还是蛮感兴趣的,不知道大神能不能详细说说

恒温 [该话题已被删除] 中提及了此贴 07月18日 15:54
卡斯 [该话题已被删除] 中提及了此贴 07月18日 15:54
恒温 《Android 性能测试初探》合集 中提及了此贴 11月29日 15:15
卡斯 Android 性能测试初探 (五) 中提及了此贴 12月01日 17:17

使用高速摄像机来测 fps,请问摄像机拍摄的帧率设置多少合适?60?120?拍摄的相邻两张图片差异很小,甚至是人眼看不出来差异,这两张图片算一帧么?有图片对比方法推荐吗?能详细说说么

Jackey 回复

120 帧已经够了,我们这边是 240 帧,不是两张图片算不算一帧的问题,主要是能看出时间差。

您好,我们是高速摄像机研发制造企业 --- 合肥富煌君达高科信息技术有限公司,我公司的高速相机几百 ---- 一百万帧的相机都有覆盖,我们自己研发了图像采集软件和图像分析软件与相机进行匹配工作。欢迎来电咨询交流。13856506123

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册