目录

HiSmartPerf Device性能使用指导

工具简介

HiSmartPerf Device是一款性能功耗测试工具,支持监测性能、功耗相关指标,包括FPS、CPU、GPU、RAM、Temp等,并提供Device hap端和Device daemon端。Device hap适用于有屏设备,支持可视化操作,测试过程中可通过悬浮窗的开始和暂停来实时展示性能指标数据,保存后可生成数据报告,在报告中可分析各指标数据详情。Device daemon端支持shell命令行方式,同时适用于有屏和无屏设备。

[h2]指标说明

实现原理

下图展示了HiSmartPerf Device工具的主要功能组成。Device hap端设置好采集项和采集参数后,启动应用,FPS、RAM、Trace等指标通过消息发送给Device daemon端,Device daemon端进行数据采集、数据持久化和数据分析,将生成的报告回传给Device hap端,Device hap端进行可视化显示。

约束与限制

  1. Device daemon端从API version 9开始预置使用。

  2. Device daemon端执行需连接硬件设备,Device hap端需在有屏幕设备使用。

  3. Device daemon端执行前需完成hdc环境配置,并进入shell环境拉起daemon进程。

    C:\Users\issusser>hdc shell
    $
  4. Device hap端从API version 20开始支持自动拉起Device daemon端的功能。

    在使用可以自动拉起Device daemon进程的Device hap端时,点击性能/功耗测试,选择测试应用后,待hap端界面显示采集器连接成功,即Device daemon进程已被拉起。

    • 拉起和查看daemon进程(手动拉起daemon进程)。

      C:\Users\issusser>hdc shell
      // 拉起daemon进程
      $ SP_daemon
      // 查看daemon进程是否存在
      $ ps -ef | grep SP_daemon
      shell          1584     1 0 21:50:05 ?     00:00:00 SP_daemon
      shell          1595  1574 3 21:51:02 pts/0 00:00:00 grep SP_daemon
      $
    • 拉起和查看daemon进程(自动拉起daemon进程)。

      C:\Users\issusser>hdc shell
      // 查看daemon进程是否存在
      $ ps -ef | grep SP_daemon
      testserver   40960     1 4 15:38:48 ?     00:00:00 SP_daemon -deviceServer:69df7e4df0edf70cbe204549028d7171
      shell          41109 41033 67 15:38:59 ?    00:00:00 grep SP_daemon
      $

HiSmartPerf Device-hap端

工具使用说明请参见操作指导,请前往工具下载中心获取HiSmartPerf工具。

HiSmartPerf Device-daemon端

[h2]基础采集

基础采集主要采集整机或者应用的gpu、fps、CPU、DDR、内存等,支持秒级采集和启停采集,并将采集的结果写入data.csv。

1. 秒级采集

命令参数 必选 说明
-N 是 设置采集次数,一秒采集一次。
-PKG 否 设置包名。
-PID 是 设置进程ID或者线程ID。
-threads 否 采集应用子线程数量。
-c 否

采集cpu的频点和使用率。

设置应用包名时,采集整机和应用CPU信息。

不设置应用包名时,采集整机CPU信息。

-ci 否

采集cpu的指令数。

设置应用包名时,采集整机和应用CPU指令数。

不设置应用包名时,采集整机CPU指令数。

-g 否 采集gpu的频点和负载信息。
-f 否 采集指定应用的fps以及屏幕刷新率,必须设置应用包名。
-t 否 采集GPU温度、系统芯片温度。
-p 否 采集电流、电压。
-r 否

采集内存。

设置应用包名时,采集整机和应用内存信息。

不设置应用包名时,采集整机内存信息。

-snapshot 否 屏幕截图。
-net 否 采集网络速率。
-VIEW 否 设置图层,需要先获取应用图层名。
-d 否 采集DDR。
-sections 否 设置分段采集。

2. 启停采集

先执行start开始采集命令,然后操作设备或应用,最后执行stop结束采集命令。

启停采集命令参数 必选 说明
-start 是 开始采集,该命令参数后可添加基础采集命令,一秒采集一次。
-stop 是 结束采集,执行后会生成采集报告。
-print 否 一秒打印一次启停采集信息。

3. 查看csv采集结果

若采集结果保存在csv文件中,可以按照如下操作导出和查看结果内容。

[h2]场景化采集

除基本采集外,还支持采集响应和完成时延等内容。场景化采集结果不写入data.csv,采集结果直接在命令框显示。

场景化采集是对应用页面滑动、切换场景下的性能测试,针对不同操作场景执行相对应的采集命令,获取应用性能数据,包括页面的滑动帧率、页面切换或滑动的卡顿率、响应时延、完成时延以及最大连续丢帧,对采集数据进行输出打印,以便用户分析并优化应用性能。

场景化采集命令参数 必选 说明
-editor 是 采集类型为场景化。
timeDelay 否 页面切换(支持ArKUI子系统的router、navigation、tabs、swiper控件内的页面切换/内容切换)。
slideList 否 页面滑动(支持ArKUI子系统的List、grid、scroll、waterflow等组件内的页面滑动)。
场景化采集数据项 说明 备注
ResponseTime 页面切换、页面滑动的响应时延。 单位:ms
CompleteTime 页面切换的完成时延。 单位:ms
HitchTimeRate 页面切换、页面滑动的卡顿率。 单位:ms/s
MAX_RENDER_SEQ_MISSED_FRAMES 页面切换、页面滑动的最大连续丢帧。 NA
FPS 页面滑动帧率。 单位:fps

页面切换

步骤1:打开被测应用,进入需要测试的页面。

步骤2:在cmd命令行中输入命令并回车:SP_daemon -editor timeDelay。

步骤3:等待1-2秒钟,然后手动点击页面内的按钮,跳转到下一个页面,等待测试完成。

测试完成后,打印结果示例如下:

$ SP_daemon -editor timeDelay
ResponseTime:41ms
CompleteTime:593ms
HitchTimeRate:68.65ms/s
MAX_RENDER_SEQ_MISSED_FRAMES:3
$
  • 时延计算受系统打点上报限制,开始时间为点击事件上报时间点,响应时延结束时间点为点击后系统响应首帧的上屏时间点,完成时延是切换后页面的首帧上屏时间点,与端到端用户感知时延存在差异。

  • 页面切换卡顿率:目前只支持ArKUI子系统的router、navigation、tabs、swiper控件内的页面切换/内容切换。计算公式:页面切换卡顿率=页面切换动效时间内每一帧的累计丢帧时间(ms)/ 动效时长(s)。

  • 最大连续丢帧受系统打点上报限制,与端到端用户感知时延存在差异。

  • 页面切换同时会抓取trace,文件路径:data/local/tmp/sp_trace_delay.ftrace,通过hdc file recv的方式导出查看trace。

页面滑动

步骤1:打开被测应用,进入需要测试的页面。

步骤2:在cmd命令行中输入命令并回车:SP_daemon -editor slideList。

步骤3:等待1-2秒钟,然后触摸屏幕滑动一次页面,等待测试完成。

测试完成后,打印结果示例如下:

$ SP_daemon -editor slideList
FPS:107.181fps
ResponseTime:20ms
HitchTimeRate:1.49ms/s
MAX_RENDER_SEQ_MISSED_FRAMES:0
$
  • 时延计算受系统打点上报限制,开始时间为点击事件上报时间点,响应时延结束时间点为滑动后系统响应首帧的上屏时间点,与端到端用户感知时延存在差异,需要注意的是,滑动场景时延计算不支持Web组件。

  • 页面滑动帧率:指的是在页面滑动时,屏幕能够刷新的频率。需要注意的是,该场景目前只支持滑动一次页面。

  • 页面滑动卡顿率:目前只支持ArKUI子系统的List、grid、scroll、waterflow滚动组件。计算公式:页面滑动卡顿率=页面滑动动效时间内每一帧的累计丢帧时间(ms)/ 动效时长(s)。

  • 最大连续丢帧受系统打点上报限制,与端到端用户感知时延存在差异。

  • 页面滑动同时会抓取trace,文件路径:data/local/tmp/sp_trace_fps.ftrace,通过hdc file recv的方式导出查看trace。

[h2]其他采集

当前设备电量采集结果可写入csv文件,其它命令需单独采集,采集结果不写入data.csv,仅在命令框显示。

命令参数 必选 说明
-screen 否 采集屏幕分辨率和刷新率。
-deviceinfo 否 获取设备信息。
-server 否 启停采集用来拉起daemon进程。
-clear 否 清除所有SP_daemon进程。
-recordcapacity 否 获取当前设备电量。
-profilerfps 否 采集当前界面fps。