性能场景和测试标准
性能指标KPI
分类 | 特性 | 指标名称 | 触发方式 | 指标类型 | 单位 | 达标值 |
---|---|---|---|---|---|---|
最小应用 | 应用启动 | 空应用冷启动时长 | 点击(启动) | 完成时延 | ms | 800 |
最小应用 | 应用启动 | 首页带图应以冷启动时长 | 点击(启动) | 完成时延 | ms | 1100 |
最小应用 | 界面切换 | 纯文本界面切换时长 | 点击 | 完成时延 | ms | 450 |
最小应用 | 界面切换 | 带图界面切换时长 | 点击 | 完成时延 | ms | 450 |
最小应用 | 帧率 | 带图列表页面滑动帧率 | 滑动 | 帧率 | fps | 56 |
设置 | 设置列表滑动 | 设置列表滑动帧率 | 滑动 | 帧率 | fps | 56 |
设置 | 设置列表滑动 | 设置列表滑动响应时延 | 滑动 | 响应时延 | ms | 180 |
设置 | 退出设置 | 退出设置时延 | 点击 | 完成时延 | ms | 400 |
设置 | 设置项点击 | 设置应用内跳转 | 点击 | 完成时延 | ms | 450 |
设置 | 设置启动(冷启动) | 设置冷启动 | 点击(启动) | 完成时延 | ms | 1400 |
设置 | 设置启动(热启动) | 设置热启动 | 点击(启动) | 完成时延 | ms | 650 |
相机 | camera启动(冷启动) | camera冷启动 | 点击(启动) | 完成时延 | ms | 3000 |
相机 | camera启动(热启动) | camera热启动 | 点击(启动) | 完成时延 | ms | 2500 |
计算器 | 计算器启动(冷启动) | 计算器冷启动 | 点击(启动) | 完成时延 | ms | 1000 |
计算器 | 计算器启动(热启动) | 计算器热启动 | 点击(启动) | 完成时延 | ms | 800 |
计算器 | 计算器输入 | 计算器点击响应 | 点击 | 完成时延 | ms | 80 |
时钟 | 时钟启动(冷启动) | 时钟冷启动 | 点击(启动) | 完成时延 | ms | 900 |
时钟 | 时钟启动(热启动) | 时钟热启动 | 点击(启动) | 完成时延 | ms | 450 |
整机 | 开机 | 上电到桌面时长 | 点击 | 完成时延 | s | 30 |
整机 | 重启 | 重启市场 | 点击 | 完成时延 | s | 40 |
整机 | 唤醒屏幕 | 唤醒屏幕市场 | 点击 | 完成时延 | ms | 900 |
-
备注 以上达标值仅供参考,由于各款芯片性能不一致,请外部开发者自行调整
性能指标测试方法
启动时延
慢速相机拍摄计算启动延时
以设置应用冷启动为例,上表中其他时延类测试项方法类似
前置条件:
-
一台正常烧录OpenHarmony 系统镜像的的设置;
-
系统镜像预支设置应用;
-
PC端安装 avidemux2 工具;
-
一台支持8倍速慢动作拍摄的设备;
测试步骤:
-
设备进入主界面保持常亮;
-
使用慢动作相机打开八倍速慢动作开始记录手指点击桌面设置应用图标到应用完全打开的全部过程;
-
在PC 端使用工具 avidemux2 打开上述拍摄的视频;
-
通过单帧播放记录起点帧数和终点帧数;
-
通过时延公式 (终点帧数 - 起点帧数 )x 1000 / 240 计算出响应时延;
-
重复上述步骤5次,计算平均值,如果初出现偏差较大结果,单次结果作废;
抓取trace计算启动延时
以设置应用冷启动为例,上表中其他时延类测试项方法类似
前置条件:
-
一台正常烧录OpenHarmony 系统镜像的的设置;
-
系统镜像预支设置应用;
-
PC 端配置 hdc 工具;
测试步骤:
-
设备进入主界面保持常亮;
-
使用 hdc 命令抓取应用启动的trace;
-
手指点击桌面设置应用图标到应用完全打开,等待trace 采集完毕;
-
使用 chrome 浏览器的tracing 插件打开采集到的trace 文件;
-
找到应用启动的 trace 采集起始点和结束点,使用插件中的标尺拉取两点之间的时间差;
-
重复上述步骤5次,计算平均值,如果初出现偏差较大结果,单次结果作废;
// trace 命令
hdc_std shell bytrace -t 5 --overwrite ability app ark ace winodw graphic > D:\mytrace.ftrace
-
冷热启动起始点:StartAbility trace 节点前的最后一个 H:DispatchTouchEvent trace 节点
-
其他点击起始点:一般找最后一个 H:DispatchTouchEvent trace 节点
-
结束点: H:RSMainThread::DoComposition trace 节点
帧率
DevEcoTesting 工具测量
以设置列表滑动为例,上表中其他帧率测试项方法类似
前置条件:
-
一台正常烧录OpenHarmony 系统镜像的的设置;
-
系统镜像预支设置应用;
-
PC 端安装 DevEcoTesting 开发工具;
测试步骤:
-
设备进入设置列表首页保持常亮;
-
打开 DevEcoTesting 开发工具,进入 设备性能功耗测试>场景化性能测试>创建任务;
-
快速滑动列表,观察 FPS 数据曲线变化;
GD_daemon_fps 工具测量
以设置列表滑动为例,上表中其他帧率测试项方法类似
前置条件:
-
一台正常烧录OpenHarmony 系统镜像的的设置;
-
系统镜像预支设置应用;
-
PC 端配置 hdc 工具;
测试步骤:
-
设备进入设置列表首页保持常亮;
-
使用 hdc 命令抓取列表滑动fps;
-
快速手动滑动列表组件;
C:\Users\ hdc_std shell
# GD_daemon_fps 10 | grep fps
最小应用实例
最小应用是测试基本性能数据的 demo 应用,这几个应用暂未开源,下面的篇幅将引导开发者开发上述几个最小应用
空应用
使用DevEco Stduio 开发工具创建空应用即可
带图启动
使用DevEco Stduio 开发工具创建应用,首页使用 Image 组件加载一张 100kb 以下的图片
文本跳转
使用 DevEco Stduio 开发工具创建应用,创建2个文本页面,分别使用 text 组件加载 “first text” 和 “second text”,使用 OpenHarmony Router 组件跳转页面
文本跳转
使用 DevEco Stduio 开发工具创建应用,创建2个图片展示页面,分别使用 image 组件加载一张 100kb 以下的图片,使用 OpenHarmony Router 组件跳转页面
带图列表
使用 DevEco Stduio 开发工具创建应用,页面主要代码如下:
List() {
LazyForEach(this.lazyData, (item, index) => {
ListItem() {
Row() {
Image($r("app.media.icon")).withd(50).height(50)
.borderRadius(8)
Text(`选项:${index + 1}`)
.withd("100%"). height(50)
.fontSize(16).textAlign(TextAlign.Start)
.padding(10)
}
}
}, item => JSON.stringify(item))
}
更多推荐
所有评论(0)