1# SP_daemon 2## 简介 3 4- OpenHarmony性能测试工具SmartPerf 命令行版本,可采集CPU、GPU、Temperature、Power、应用RAM、FPS等指标,通过设置采集指标,对采集数据进行实时打印、导出csv。 5 6- 性能较差或无屏幕设备请使用命令行版本,带屏幕的设备且性能较好的设备推荐使用[UI版本](https://gitee.com/openharmony/developtools_profiler/blob/master/host/smartperf/client/client_ui/README_zh.md)。 7 8## 代码目录 9``` 10/developtools/profiler/host/smartperf/client/client_command 11├── include # 头文件目录 12├── BUILD.gn # SP_daemon bin打包配置文件 13├── ByTrace.cpp # trace抓取代码文件 14├── Capture.cpp # 截图代码文件 15├── CPU.cpp # CPU采集代码文件 16├── DDR.cpp # DDR采集代码文件 17├── FPS.cpp # FPS采集代码文件 18├── GPU.cpp # GPU采集代码文件 19├── GpuCounter.cpp # GpuCounter采集代码文件 20├── GpuCounterCallback.cpp # GpuCounterCallback采集代码文件 21├── Network.cpp # 网络上下行速率采集代码文件 22├── Power.cpp # 功耗采集代码文件 23├── RAM.cpp # 内存采集代码文件 24├── smartperf_command.cpp # 程序执行文件 25├── smartperf_main.cpp # 程序入口文件 26├── sp_log.cpp # log文件 27├── sp_profiler_factory.cpp # 采集工厂文件 28├── sp_server_socket.cpp # 与SmartPerf hap通讯代码文件 29├── sp_task.cpp # 与SmartPerf editor通讯代码文件 30├── sp_utils.cpp # 工具类 31├── Temperature.cpp # 温度采集代码文件 32``` 33 34## 约束条件 35 SmartPerf应用在3.2系统版本后开始预制使用。 36 37## 功能特性 38 39**1. 参数说明** 40**1.1 基础采集命令参数** 41 42| 命令 | 功能 |必选| 43| :-----| :--------------------- |:-----| 44| -N | 设置采集次数(一秒采集一次)|是| 45| -PKG | 设置包名 | 否| 46| -c | 采集cpu的频点和使用率,设置应用包名:采集整机和应用CPU信息,不设置应用包名:采集整机CPU信息 | 否| 47| -g | 采集gpu的频点和负载信息 |否| 48| -f | 采集指定应用的fps,必须设置应用包名 |否| 49| -profilerfps | 采集当前界面fps |否| 50| -t | 采集电池等温度 |否| 51| -p | 采集电流 |否| 52| -r | 采集内存,设置应用包名:采集整机和应用内存信息,不设置应用包名:采集整机内存信息 |否| 53| -snapshot | 屏幕截图 |否| 54| -net | 采集网络速率 |否| 55| -VIEW | 设置图层,需要先获取应用图层名 |否| 56| -screen | 采集屏幕分辨率和刷新率 |否| 57| -d | 采集DDR |否| 58| -sections| 设置分段采集 |否| 59 60**1.2 启停采集命令参数** 61| 命令 | 功能 |必选| 62| :-----| :--------------------- |:-----| 63| -start | 开始采集,该命令后可添加基础采集命令 |是| 64| -stop | 结束采集,执行后会生成采集报告 |是| 65--- 66 67**2. 使用方式**<br> 681)目前命令行版本已系统预制,可以进入shell,执行SP_daemon --help查看。 69 70```bash 71C:\Users\test>hdc_std shell 72# SP_daemon --help 73OpenHarmony performance testing tool SmartPerf command-line version 74Usage: SP_daemon <options> <arguments> 75options: 76 -N set the collection times(default value is 0) range[1,2147483647], for example: -N 10 77 -PKG set package name, must add, for example: -PKG ohos.samples.ecg 78 -c get device CPU frequency and CPU usage, process CPU usage and CPU load .. 79 -g get device GPU frequency and GPU load 80 -f get app refresh fps(frames per second) and fps jitters and refreshrate 81 -profilerfps get refresh fps and timestamp 82 -sections set collection time period(using with profilerfps) 83 -t get remaining battery power and temperature.. 84 -p get battery power consumption and voltage 85 -r get process memory and total memory 86 -snapshot get screen capture 87 -net get uplink and downlink traffic 88 -start collection start command 89 -stop collection stop command 90 -VIEW set layler, for example: -VIEW DisplayNode 91 -OUT set csv output path. 92 -d get device DDR information 93 -screen get screen resolution 94 -deviceinfo get device information 95 -server start a process to listen to the socket message of the start and stop commands 96 -clear clear the process ID 97 -ohtestfps used by the vilidator to obtain the fps, the collection times can be set 98 -editorServer start a process to listen to the socket message of the editor 99 -recordcapacity get the battery level difference 100 --version get version 101 --help get help 102 -editor scenario-based collection identifier, parameter configuration items can be added later 103 responseTime get the page response delay after an application is operated 104 completeTime get the page completion delay after an application is operated 105 fpsohtest used by the vilidator to obtain the fps 106 example1: 107 SP_daemon -N 20 -c -g -t -p -r -net -snapshot -d 108 SP_daemon -N 20 -PKG ohos.samples.ecg -c -g -t -p -f -r -net -snapshot -d 109 SP_daemon -start -c 110 SP_daemon -stop 111 example2: These parameters need to be used separately 112 SP_daemon -screen 113 SP_daemon -deviceinfo 114 SP_daemon -server 115 SP_daemon -clear 116 SP_daemon -ohtestfps 117 SP_daemon -editorServer 118 SP_daemon -recordcapacity 119 example3: These parameters need to be used separately 120 SP_daemon -editor responseTime ohos.samples.ecg app name 121 SP_daemon -editor completeTime ohos.samples.ecg app name 122 SP_daemon -editor fpsohtest 123 124command exec finished! 125# 126``` 1272)执行示例命令:SP_daemon -N 20 -PKG ohos.samples.ecg -c -g -t -p -f -r -d -net -snapshot 128``` 129----------------------------------Print START------------------------------------ 130order:0 timestamp=1710916175201 131order:1 ProcAppName=ohos.samples.ecg 132order:2 ProcCpuLoad=0.0015567 133order:3 ProcCpuUsage=0.000000 134order:4 ProcId=18510 135order:5 ProcSCpuUsage=0.000000 136order:6 ProcUCpuUsage=0.000000 137order:7 cpu0Frequency=418000 138order:8 cpu0Usage=0.000000 139order:9 cpu0idleUsage=0.000000 140order:10 cpu0ioWaitUsage=0.000000 141order:11 cpu0irqUsage=0.000000 142order:12 cpu0niceUsage=0.000000 143order:13 cpu0softIrqUsage=0.000000 144order:14 cpu0systemUsage=0.000000 145order:15 cpu0userUsage=0.000000 146... 147order:115 gpuFrequency=279000000 148order:116 gpuload=61.000000 149order:117 Battery=28.000000 150order:118 shell_back=31.529000 151order:119 shell_frame=30.529000 152order:120 shell_front=30.548000 153order:121 soc_thermal=49.624000 154order:122 system_h=30.150000 155order:123 currentNow=278 156order:124 voltageNow=4250532 157order:125 fps=3 158order:126 fpsJitters=881659966;;108846354;;8289583 159order:127 refreshrate=120 160order:128 memAvailable=6354252 161order:129 memFree=5971776 162order:130 memTotal=11530092 163order:131 pss=78045 164order:132 arktsHeapPss=13394 165order:133 gpuPss=280 166order:134 graphicPss=0 167order:135 heapAlloc=48080 168order:136 heapFree=2576 169order:137 heapSize=50788 170order:138 nativeHeapPss=41897 171order:139 privateClean=67232 172order:140 privateDirty=12848 173order:141 sharedClean=76224 174order:142 sharedDirty=12848 175order:143 stackPss=1096 176order:144 swap=0 177order:145 swapPss=0 178order:146 ddrFrequency=1531000000 179order:147 networkDown=0 180order:148 networkUp=0 181order:149 capture=data/local/tmp/capture/screenCap_1711190737580.png 182 183 184----------------------------------Print END-------------------------------------- 185----------------------------------Print START------------------------------------ 186order:0 timestamp=1710916175201 187order:1 ProcAppName=ohos.samples.ecg 188order:2 ProcCpuLoad=0.001379 189order:3 ProcCpuUsage=0.008162 190order:4 ProcId=18510 191order:5 ProcSCpuUsage=0.008162 192order:6 ProcUCpuUsage=0.000000 193order:7 cpu0Frequency=418000 194order:8 cpu0Usage=16.346154 195order:9 cpu0idleUsage=83.653846 196order:10 cpu0ioWaitUsage=0.961538 197order:11 cpu0irqUsage=4.807692 198order:12 cpu0niceUsage=0.000000 199order:13 cpu0softIrqUsage=0.000000 200order:14 cpu0systemUsage=5.769231 201order:15 cpu0userUsage=4.807692 202... 203order:115 gpuFrequency=279000000 204order:116 gpuload=61.000000 205order:117 Battery=28.000000 206order:118 shell_back=31.529000 207order:119 shell_frame=30.529000 208order:120 shell_front=30.548000 209order:121 soc_thermal=47.810000 210order:122 system_h=30.200000 211order:123 currentNow=303 212order:124 voltageNow=4251570 213order:125 fps=12 214order:126 fpsJitters=122794860;;8372396;;8375521;;8448958;;16691667;;8357812;;8367188;;8364062;;8383855;;8514062;;8238542;;849062 215order:127 refreshrate=120 216order:128 memAvailable=6370048 217order:129 memFree=5990136 218order:130 memTotal=11530092 219order:131 pss=78217 220order:132 arktsHeapPss=13586 221order:133 gpuPss=280 222order:134 graphicPss=0 223order:135 heapAlloc=48156 224order:136 heapFree=2648 225order:137 heapSize=50780 226order:138 nativeHeapPss=41877 227order:139 privateClean=67404 228order:140 privateDirty=2920 229order:141 sharedClean=76224 230order:142 sharedDirty=12848 231order:143 stackPss=1096 232order:144 swap=0 233order:145 swapPss=0 234order:146 ddrFrequency=1531000000 235order:147 networkDown=0 236order:148 networkUp=0 237order:149 capture=data/local/tmp/capture/screenCap_1711190738589.png 238 239command exec finished! 240# 241----------------------------------Print END-------------------------------------- 242``` 2433)执行完毕后会在data/local/tmp生成data.csv文件,每次执行命令覆盖写入,可导出到本地查看。 244```bash 245c:\Users\xxx>hdc file recv data/local/tmp/data.csv D:\ 246[I][2024-03-20 18:27:07] HdcFile::TransferSummary success 247FileTransfer finish, Size:7306, File count = 1, time:377ms rate:19.38kB/s 248--- 249 250## 发布版本 251 252**3.2.0.0版本发布内容:预制SP_daemon bin文件,支持以下功能:**<br> 2531. 支持RK3568、Hi3516。<br> 2542. 支持Shell启动。<br> 2553. 支持采集整机CPU、GPU、POWER、TEMPERATURE、应用的FPS、RAM、CPU等