• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 -ci             get cpu instructions and cycles
94 -screen         get screen resolution
95 -deviceinfo     get device information
96 -server         start a process to listen to the socket message of the start and stop commands
97 -clear          clear the process ID
98 -ohtestfps      used by the vilidator to obtain the fps, the collection times can be set
99 -editorServer   start a process to listen to the socket message of the editor
100 -recordcapacity get the battery level difference
101 --version       get version
102 --help          get help
103 -editor         scenario-based collection identifier, parameter configuration items can be added later
104 responseTime   get the page response delay after an application is operated
105 completeTime   get the page completion delay after an application is operated
106 fpsohtest      used by the vilidator to obtain the fps
107 example1:
108 SP_daemon -N 20 -c -g -t -p -r -net -snapshot -d
109 SP_daemon -N 20 -PKG ohos.samples.ecg -c -g -t -p -f -r -net -snapshot -d
110 SP_daemon -start -c
111 SP_daemon -stop
112 example2: These parameters need to be used separately
113 SP_daemon -screen
114 SP_daemon -deviceinfo
115 SP_daemon -server
116 SP_daemon -clear
117 SP_daemon -ohtestfps
118 SP_daemon -editorServer
119 SP_daemon -recordcapacity
120 example3: These parameters need to be used separately
121 SP_daemon -editor responseTime ohos.samples.ecg app name
122 SP_daemon -editor completeTime ohos.samples.ecg app name
123 SP_daemon -editor fpsohtest
124
125command exec finished!
126#
127```
1282)执行示例命令:SP_daemon -N 20 -PKG ohos.samples.ecg -c -g -t -p -f -r -d -net -snapshot
129```
130----------------------------------Print START------------------------------------
131order:0 timestamp=1710916175201
132order:1 ProcAppName=ohos.samples.ecg
133order:2 ProcCpuLoad=0.0015567
134order:3 ProcCpuUsage=0.000000
135order:4 ProcId=18510
136order:5 ProcSCpuUsage=0.000000
137order:6 ProcUCpuUsage=0.000000
138order:7 cpu0Frequency=418000
139order:8 cpu0Usage=0.000000
140order:9 cpu0idleUsage=0.000000
141order:10 cpu0ioWaitUsage=0.000000
142order:11 cpu0irqUsage=0.000000
143order:12 cpu0niceUsage=0.000000
144order:13 cpu0softIrqUsage=0.000000
145order:14 cpu0systemUsage=0.000000
146order:15 cpu0userUsage=0.000000
147...
148order:115 gpuFrequency=279000000
149order:116 gpuload=61.000000
150order:117 Battery=28.000000
151order:118 shell_back=31.529000
152order:119 shell_frame=30.529000
153order:120 shell_front=30.548000
154order:121 soc_thermal=49.624000
155order:122 system_h=30.150000
156order:123 currentNow=278
157order:124 voltageNow=4250532
158order:125 fps=3
159order:126 fpsJitters=881659966;;108846354;;8289583
160order:127 refreshrate=120
161order:128 memAvailable=6354252
162order:129 memFree=5971776
163order:130 memTotal=11530092
164order:131 pss=78045
165order:132 arktsHeapPss=13394
166order:133 gpuPss=280
167order:134 graphicPss=0
168order:135 heapAlloc=48080
169order:136 heapFree=2576
170order:137 heapSize=50788
171order:138 nativeHeapPss=41897
172order:139 privateClean=67232
173order:140 privateDirty=12848
174order:141 sharedClean=76224
175order:142 sharedDirty=12848
176order:143 stackPss=1096
177order:144 swap=0
178order:145 swapPss=0
179order:146 ddrFrequency=1531000000
180order:147 networkDown=0
181order:148 networkUp=0
182order:149 capture=data/local/tmp/capture/screenCap_1711190737580.png
183
184
185----------------------------------Print END--------------------------------------
186----------------------------------Print START------------------------------------
187order:0 timestamp=1710916175201
188order:1 ProcAppName=ohos.samples.ecg
189order:2 ProcCpuLoad=0.001379
190order:3 ProcCpuUsage=0.008162
191order:4 ProcId=18510
192order:5 ProcSCpuUsage=0.008162
193order:6 ProcUCpuUsage=0.000000
194order:7 cpu0Frequency=418000
195order:8 cpu0Usage=16.346154
196order:9 cpu0idleUsage=83.653846
197order:10 cpu0ioWaitUsage=0.961538
198order:11 cpu0irqUsage=4.807692
199order:12 cpu0niceUsage=0.000000
200order:13 cpu0softIrqUsage=0.000000
201order:14 cpu0systemUsage=5.769231
202order:15 cpu0userUsage=4.807692
203...
204order:115 gpuFrequency=279000000
205order:116 gpuload=61.000000
206order:117 Battery=28.000000
207order:118 shell_back=31.529000
208order:119 shell_frame=30.529000
209order:120 shell_front=30.548000
210order:121 soc_thermal=47.810000
211order:122 system_h=30.200000
212order:123 currentNow=303
213order:124 voltageNow=4251570
214order:125 fps=12
215order:126 fpsJitters=122794860;;8372396;;8375521;;8448958;;16691667;;8357812;;8367188;;8364062;;8383855;;8514062;;8238542;;849062
216order:127 refreshrate=120
217order:128 memAvailable=6370048
218order:129 memFree=5990136
219order:130 memTotal=11530092
220order:131 pss=78217
221order:132 arktsHeapPss=13586
222order:133 gpuPss=280
223order:134 graphicPss=0
224order:135 heapAlloc=48156
225order:136 heapFree=2648
226order:137 heapSize=50780
227order:138 nativeHeapPss=41877
228order:139 privateClean=67404
229order:140 privateDirty=2920
230order:141 sharedClean=76224
231order:142 sharedDirty=12848
232order:143 stackPss=1096
233order:144 swap=0
234order:145 swapPss=0
235order:146 ddrFrequency=1531000000
236order:147 networkDown=0
237order:148 networkUp=0
238order:149 capture=data/local/tmp/capture/screenCap_1711190738589.png
239
240command exec finished!
241#
242----------------------------------Print END--------------------------------------
243```
2443)执行完毕后会在data/local/tmp生成data.csv文件,每次执行命令覆盖写入,可导出到本地查看。
245```bash
246c:\Users\xxx>hdc file recv data/local/tmp/data.csv D:\
247[I][2024-03-20 18:27:07] HdcFile::TransferSummary success
248FileTransfer finish, Size:7306, File count = 1, time:377ms rate:19.38kB/s
249---
250
251## 发布版本
252
253**3.2.0.0版本发布内容:预制SP_daemon bin文件,支持以下功能:**<br>
2541. 支持RK3568、Hi3516。<br>
2552. 支持Shell启动。<br>
2563. 支持采集整机CPU、GPU、POWER、TEMPERATURE、应用的FPS、RAM、CPU等