1# SmartPerf Device性能工具使用指导 2 3## 工具简介 4 5SmartPerf Device是一款基于系统开发的性能功耗测试工具,操作简单易用。该工具可以监测性能、功耗相关指标,包括FPS、CPU、GPU、RAM、Temp等,通过量化的指标项了解应用、整机性能状况。 6 7在开发过程中,会使用到有屏或无屏设备,对此SmartPerf Device提供了两种方式:分别是Device-hap端和Device-daemon端。Device-hap端适用于有屏设备,支持可视化操作。测试时是通过悬浮窗的开始和暂停来实时展示性能指标数据,保存后可生成数据报告,在报告中可分析各指标数据详情。Device-daemon端支持shell命令行方式,同时适用于有屏和无屏设备。 8 9### 指标说明 10 11- CPU:每秒读取一次设备节点下CPU大中小核的频点和各核使用率,衡量应用占用CPU资源的情况,占用过多的CPU资源会导致芯片发烫。 12- GPU:每秒读取一次设备节点下GPU的频点和负载信息,衡量应用占用GPU资源的情况,当GPU占用过多时,会导致性能下降,应用程序的运行速度变慢。 13- FPS:应用界面每秒刷新次数,衡量应用画面的流畅度,FPS越高通常表示图像流畅度越好,用户体验也越好。 14- TEMP:每秒读取一次设备节点下GPU温度、系统芯片温度信息。 15- RAM:每秒读取一次应用进程的实际物理内存,衡量应用的内存占比情况。 16- snapshot:每2秒截取一张应用界面截图。 17 18## 实现原理 19 20下图展示了SmartPerf Device工具的主要功能组成。Device-hap端设置好采集项和采集参数后,启动应用,FPS、RAM、Trace等指标通过消息发送给Device-daemon端,Device-daemon端进行数据采集、持久化和数据分析,将生成的报告回传给Device-hap端,Device-hap端进行可视化显示。 21 22 23 24## 约束与限制 25 261. Device-daemon端<!--Del-->、Device-hap端<!--DelEnd-->在API 9版本开始预置使用。<!--RP1--><!--RP1End--> 27 282. Device-daemon端执行需连接硬件设备,Device-hap端需在有屏幕设备使用。 29 303.<!--RP2-->Device-daemon端执行前需完成[hdc环境配置](https://gitee.com/openharmony/developtools_hdc)。<!--RP2End--> 31 32<!--RP3--> 33## SmartPerf Device-hap端 34 35下面的操作步骤和界面内容以RK3568设备为例。 36 37### 获取应用列表 38 39点击设备上"SmartPerf Device-hap端"应用图标,进入"首页",点击"请选择一个应用",在应用列表页选择需要测试的应用。 40 41 42 43 44 45### 设置采集参数 46 47应用选择完成后回到开始测试页面,根据实际业务需要,配置"测试指标"。同时,可修改测试名称(测试名称包含测试的应用名称和测试时间,会呈现在报告列表中),是否抓取trace,选择是否开启截图。配置完成后,点击底部"开始测试"按钮。 48 49### 悬浮窗控制采集 50 51点击悬浮窗"start"开始采集,点击悬浮窗"计时器"(如下图中00:07)暂停采集。再次点击"计时器",继续开始采集。双击"计时器",实时展示采集数据。长按"计时器",结束采集。<br>整个过程中,可拖动悬浮框调整悬浮框位置。 52 53 54 55 56### 查看报告 57 58点击"报告",查看测试报告列表。点击项目,进入报告详情页,查看测试指标项详情。 59 60 61 62 63## SmartPerf Device-daemon端 64 65### 采集前提 66 67#### 进入shell 68 69 ``` 70 C:\Users\issusser>hdc shell 71 # 72 ``` 73 74#### 拉起和查看daemon进程 75 76 ``` 77 C:\Users\issusser>hdc shell 78 // 拉起daemon进程 79 # SP_daemon 80 // 查看daemon进程是否存在 81 # ps -ef | grep SP_daemon 82 root 1584 1 0 21:50:05 ? 00:00:00 SP_daemon 83 root 1595 1574 3 21:51:02 pts/0 00:00:00 grep SP_daemon 84 # 85 ``` 86 87#### 执行和查看帮助命令 88 89 ``` 90 # SP_daemon --help 91 OpenHarmony performance testing tool SmartPerf command-line version 92 Usage: SP_daemon [options] [arguments] 93 94 options: 95 -N set the collection times(default value is 0) range[1,2147483647], for example: -N 10 96 -PKG set package name, must add, for example: -PKG ohos.samples.ecg 97 -c get device CPU frequency and CPU usage, process CPU usage and CPU load .. 98 -g get device GPU frequency and GPU load 99 -f get app refresh fps(frames per second) and fps jitters and refreshrate 100 -profilerfps get refresh fps and timestamp 101 -sections set collection time period(using with profilerfps) 102 -t get remaining battery power and temperature.. 103 -p get battery power consumption and voltage(Not supported by some devices) 104 -r get process memory and total memory 105 -snapshot get screen capture 106 -net get uplink and downlink traffic 107 -start collection start command 108 -stop collection stop command 109 -VIEW set layler, for example: -VIEW DisplayNode 110 -OUT set csv output path. 111 -d get device DDR information 112 -screen get screen resolution 113 -deviceinfo get device information 114 -server start a process to listen to the socket message of the start and stop commands 115 -clear clear the process ID 116 -ohtestfps used by the validator to obtain the fps, the collection times can be set 117 -editorServer start a process to listen to the socket message of the editor 118 -recordcapacity get the battery level difference 119 --version get version 120 --help get help 121 -editor scenario-based collection identifier, parameter configuration items can be added later 122 responseTime get the page response delay after an application is operated 123 completeTime get the page completion delay after an application is operated 124 fpsohtest used by the validator to obtain the fps 125 example1: 126 SP_daemon -N 20 -c -g -t -p -r -net -snapshot -d 127 SP_daemon -N 20 -PKG ohos.samples.ecg -c -g -t -p -f -r -net -snapshot -d 128 SP_daemon -start -c 129 SP_daemon -stop 130 example2: These parameters need to be used separately 131 SP_daemon -screen 132 SP_daemon -deviceinfo 133 SP_daemon -server 134 SP_daemon -clear 135 SP_daemon -ohtestfps 10 136 SP_daemon -editorServer 137 SP_daemon -recordcapacity 138 example3: These parameters need to be used separately 139 SP_daemon -editor responseTime ohos.samples.ecg app name 140 SP_daemon -editor completeTime ohos.samples.ecg app name 141 SP_daemon -editor fpsohtest 142 143 144 145 command exec finished! 146 # 147 ``` 148 149### 基础采集 150 151#### 通过-N开启采集 152 153| 命令参数 |必选| 说明 | 154| :-----| :-----| :--------------------- | 155| -N |是| 设置采集次数,一秒采集一次。 | 156| -PKG |否| 设置包名。 | 157| -c |否| 采集cpu的频点和使用率。<br>设置应用包名时,采集整机和应用CPU信息。 <br>不设置应用包名时,采集整机CPU信息。 | 158| -g |否| 采集gpu的频点和负载信息。 | 159| -f |否| 采集指定应用的fps以及屏幕刷新率,必须设置应用包名。 | 160| -t |否| 采集GPU温度、系统芯片温度。 | 161| -r |否| 采集内存。<br>设置应用包名时,采集整机和应用内存信息。 <br>不设置应用包名时,采集整机内存信息。 | 162| -snapshot |否| 屏幕截图。 | 163| -net |否| 采集网络速率。 | 164| -VIEW |否| 设置图层,需要先获取应用图层名。 | 165| -d |否| 采集DDR。 | 166| -sections|否| 设置分段采集。 | 167 168##### 使用示例 169 170- 采集2次整机CPU大中小核频率、各核使用率 171 172 ``` 173 # SP_daemon -N 2 -c 174 175 order:0 timestamp=1501839064260 176 order:1 TotalcpuUsage=0.502513 177 order:2 TotalcpuidleUsage=99.497487 178 order:3 TotalcpuioWaitUsage=0.000000 179 order:4 TotalcpuirqUsage=0.000000 180 order:5 TotalcpuniceUsage=0.000000 181 order:6 TotalcpusoftIrqUsage=0.000000 182 order:7 TotalcpusystemUsage=0.251256 183 order:8 TotalcpuuserUsage=0.251256 184 order:9 cpu0Frequency=1992000 185 order:10 cpu0Usage=1.000000 186 order:11 cpu0idleUsage=99.000000 187 order:12 cpu0ioWaitUsage=0.000000 188 order:13 cpu0irqUsage=0.000000 189 order:14 cpu0niceUsage=0.000000 190 order:15 cpu0softIrqUsage=0.000000 191 order:16 cpu0systemUsage=0.000000 192 order:17 cpu0userUsage=1.000000 193 order:18 cpu1Frequency=1992000 194 order:19 cpu1Usage=0.000000 195 order:20 cpu1idleUsage=100.000000 196 order:21 cpu1ioWaitUsage=0.000000 197 order:22 cpu1irqUsage=0.000000 198 order:23 cpu1niceUsage=0.000000 199 order:24 cpu1softIrqUsage=0.000000 200 order:25 cpu1systemUsage=0.000000 201 order:26 cpu1userUsage=0.000000 202 order:27 cpu2Frequency=1992000 203 order:28 cpu2Usage=1.000000 204 order:29 cpu2idleUsage=99.000000 205 order:30 cpu2ioWaitUsage=0.000000 206 order:31 cpu2irqUsage=0.000000 207 order:32 cpu2niceUsage=0.000000 208 order:33 cpu2softIrqUsage=0.000000 209 order:34 cpu2systemUsage=1.000000 210 order:35 cpu2userUsage=0.000000 211 order:36 cpu3Frequency=1992000 212 order:37 cpu3Usage=0.000000 213 order:38 cpu3idleUsage=100.000000 214 order:39 cpu3ioWaitUsage=0.000000 215 order:40 cpu3irqUsage=0.000000 216 order:41 cpu3niceUsage=0.000000 217 order:42 cpu3softIrqUsage=0.000000 218 order:43 cpu3systemUsage=0.000000 219 order:44 cpu3userUsage=0.000000 220 221 ... 222 223 command exec finished! 224 # 225 ``` 226 227- 采集2次整机CPU大中小核频率、各核使用率以及进程CPU使用率、负载 228 229 ``` 230 # SP_daemon -N 2 -PKG ohos.samples.ecg -c 231 232 233 234 order:0 timestamp=1501839151499 235 order:1 ProcAppName=ohos.samples.ecg 236 order:2 ProcCpuLoad=0.000000 237 order:3 ProcCpuUsage=36.177645 238 order:4 ProcId=2111 239 order:5 ProcSCpuUsage=8.982036 240 order:6 ProcUCpuUsage=27.195609 241 order:7 TotalcpuUsage=62.500000 242 order:8 TotalcpuidleUsage=37.500000 243 order:9 TotalcpuioWaitUsage=0.000000 244 order:10 TotalcpuirqUsage=0.000000 245 order:11 TotalcpuniceUsage=0.000000 246 order:12 TotalcpusoftIrqUsage=0.000000 247 order:13 TotalcpusystemUsage=21.614583 248 order:14 TotalcpuuserUsage=40.885417 249 order:15 cpu0Frequency=1992000 250 order:16 cpu0Usage=77.083333 251 order:17 cpu0idleUsage=22.916667 252 order:18 cpu0ioWaitUsage=0.000000 253 order:19 cpu0irqUsage=0.000000 254 order:20 cpu0niceUsage=0.000000 255 order:21 cpu0softIrqUsage=0.000000 256 order:22 cpu0systemUsage=21.875000 257 order:23 cpu0userUsage=55.208333 258 order:24 cpu1Frequency=1992000 259 order:25 cpu1Usage=57.731959 260 order:26 cpu1idleUsage=42.268041 261 order:27 cpu1ioWaitUsage=0.000000 262 order:28 cpu1irqUsage=0.000000 263 order:29 cpu1niceUsage=0.000000 264 order:30 cpu1softIrqUsage=0.000000 265 order:31 cpu1systemUsage=21.649485 266 order:32 cpu1userUsage=36.082474 267 order:33 cpu2Frequency=1992000 268 order:34 cpu2Usage=59.793814 269 order:35 cpu2idleUsage=40.206186 270 order:36 cpu2ioWaitUsage=0.000000 271 order:37 cpu2irqUsage=0.000000 272 order:38 cpu2niceUsage=0.000000 273 order:39 cpu2softIrqUsage=0.000000 274 order:40 cpu2systemUsage=19.587629 275 order:41 cpu2userUsage=40.206186 276 order:42 cpu3Frequency=1992000 277 order:43 cpu3Usage=55.789474 278 order:44 cpu3idleUsage=44.210526 279 order:45 cpu3ioWaitUsage=0.000000 280 order:46 cpu3irqUsage=0.000000 281 order:47 cpu3niceUsage=0.000000 282 order:48 cpu3softIrqUsage=0.000000 283 order:49 cpu3systemUsage=23.157895 284 order:50 cpu3userUsage=32.631579 285 286 ... 287 288 command exec finished! 289 # 290 ``` 291 292 >**说明** 293 > 294 >- 使用该命令采集时需进入被测应用内。 295 296- 采集1次整机GPU频率和负载 297 298 ``` 299 # SP_daemon -N 1 -g 300 301 302 303 order:0 timestamp=1503078740268 304 order:1 gpuFrequency=200000000 305 order:2 gpuLoad=38.000000 306 307 command exec finished! 308 # 309 ``` 310 311- 采集2次整机温度 312 313 ``` 314 # SP_daemon -N 2 -t 315 316 order:0 timestamp=1502720711191 317 order:1 gpu-thermal=42500.000000 318 order:2 soc-thermal=43.125000 319 320 321 order:0 timestamp=1502720712191 322 order:1 gpu-thermal=41875.000000 323 order:2 soc-thermal=42.500000 324 325 command exec finished! 326 # 327 ``` 328 329- 采集2次整机内存 330 331 ``` 332 # SP_daemon -N 2 -r 333 order:0 timestamp=1705041562521 334 order:1 memAvailable=7339224 335 order:2 memFree=7164708 336 order:3 memTotal=11641840 337 338 order:0 timestamp=1705041563527 339 order:1 memAvailable=7339136 340 order:2 memFree=7164684 341 order:3 memTotal=11641840 342 343 command exec finished! 344 # 345 ``` 346 347- 采集1次整机和指定应用进程内存 348 349 ``` 350 # SP_daemon -N 1 -PKG ohos.samples.ecg -r 351 352 order:0 timestamp=1720427095197 353 order:1 arktsHeapPss=17555 354 order:2 gpuPss=7021 355 order:3 graphicPss=163320 356 order:4 heapAlloc=120344 357 order:5 heapFree=14362 358 order:6 heapSize=133436 359 order:7 memAvailable=2757504 360 order:8 memFree=190852 361 order:9 memTotal=11742716 362 order:10 nativeHeapPss=49102 363 order:11 privateClean=1100020 364 order:12 privateDirty=175169 365 order:13 pss=422172 366 order:14 sharedClean=89348 367 order:15 sharedDirty=19084 368 order:16 stackPss=1588 369 order:17 swap=122076 370 order:18 swapPss=122076 371 372 373 command exec finished! 374 # 375 ``` 376 >**说明** 377 > 378 >- 使用该命令采集时需进入被测应用内。 379 >- 该命令集成了历史版本-m的数据(arktsHeapPss、gpuPss、graphicPss...)。 380 381- 采集2次截图 382 383 ``` 384 # SP_daemon -N 2 -snapshot 385 386 order:0 timestamp=1501837609657 387 order:1 capture=data/local/tmp/capture/screenCap_1501837609657.png 388 389 390 order:0 timestamp=1501837610657 391 order:1 capture=NA 392 393 command exec finished! 394 # 395 ``` 396 >**说明** 397 > 398 >- 截图采集是2秒截取一次。 399 > 400 >- 截图报告存放路径为:data/local/tmp/capture。 401 > 402 >- 采集结束后:进入 data/local/tmp/capture 查看生成的截图。 403 > 404 >- 导出截图到D盘:重启一个命令行工具执行命令: hdc file recv data/local/tmp/capture/screenCap_1700725192774.png D:\。 405 406- 采集2次网络速率 407 408 ``` 409 # SP_daemon -N 2 -net 410 411 order:0 timestamp=1705041904832 412 order:1 networkDown=0 413 order:2 networkUp=0 414 415 order:0 timestamp=1705041905870 416 order:1 networkDown=22931 417 order:2 networkUp=2004 418 419 command exec finished! 420 # 421 ``` 422 423- 采集5次指定应用帧率 424 425 ``` 426 # SP_daemon -N 5 -PKG ohos.samples.ecg -f 427 428 order:0 timestamp=1705306472232 429 order:1 fps=43 430 order:2 fpsJitters=602261688;;8352083;;8267708;;8305209;;8298437;;8308854;;8313542;;8569271;;8061458;;8300521;;8308333;;8309896;;8429167;;8241667;;8258333;;8318229;;8312500;;8304167;;41760937;;16418750;;8298959;;8319270;;8308334;;8313541;;8302605;;8320312;;8298958;;8326042;;8321354;;8301042;;8310417;;8309895;;8308855;;8331250;;8286458;;8343229;;8278125;;8311458;;8306250;;8312500;;8320834;;8346875;;8283333 431 order:3 refreshrate=69 432 433 order:0 timestamp=1705306473234 434 order:1 fps=40 435 order:2 fpsJitters=674427313;;8191145;;8310417;;8319271;;8301562;;8318750;;8302084;;8314062;;8333334;;8283854;;8307812;;8311979;;8310417;;8307813;;8309375;;8323958;;8306250;;8308333;;8317709;;8296875;;8721875;;7895833;;8320833;;8340625;;8276563;;8409896;;8216145;;8310938;;8301042;;8362500;;8252604;;8317708;;8376042;;8256250;;8292187;;8303125;;8313542;;8310417;;8520312 436 order:3 refreshrate=69 437 ... 438 439 command exec finished! 440 # 441 ``` 442 >**说明** 443 > 444 >- 使用该命令采集时需进入被测应用内,滑动或切换页面。 445 >- 在智能刷新率情况下,刷新率是实时变化的(一秒内可能存在多次变化),refreshrate取值是采集时刻(timestamp)的刷新率。 446 447 448- 采集10次指定图层帧率 449 450 ``` 451 # SP_daemon -N 10 -VIEW DisplayNode -f 452 order:0 timestamp=1705306822850 453 order:1 fps=15 454 order:2 fpsJitters=876291843;;8314062;;8308334;;8314583;;8310417;;8308333;;8326042;;8314583;;8292708;;8492709;;8143750;;8340104;;8294271;;8302604;;8297396 455 order:3 refreshrate=69 456 457 order:0 timestamp=1705306823852 458 order:1 fps=12 459 order:2 fpsJitters=906667363;;8279167;;8311458;;8315625;;8291146;;8313021;;8323438;;8293750;;8303125;;8313541;;8301563;;8317708 460 order:3 refreshrate=69 461 ... 462 463 command exec finished! 464 # 465 ``` 466 >**说明** 467 > 468 >- DisplayNode 是指定的图层名。 469 > 470 >- 使用该命令采集时,需在传入的图层上操作页面。 471 > 472 >- 该命令不能与指定应用帧率一起采集(SP_daemon -N 20 -PKG ohos.samples.ecg -f 或 SP_daemon -N 20 -VIEW DisplayNode -f)。 473 474- 采集1次DDR信息 475 476 ``` 477 # SP_daemon -N 1 -d 478 479 order:0 timestamp=1710916175201 480 order:1 ddrFrequency=1531000000 481 482 command exec finished! 483 # 484 ``` 485 486- 全量采集示例1,采集整机信息,包括cpu、gpu、温度、内存信息、DDR信息、网络速率、屏幕截图 487 488 ``` 489 # SP_daemon -N 10 -c -g -t -r -d -net -snapshot 490 491 order:0 timestamp=1501837838664 492 order:1 TotalcpuUsage=0.751880 493 order:2 TotalcpuidleUsage=99.248120 494 order:3 TotalcpuioWaitUsage=0.000000 495 order:4 TotalcpuirqUsage=0.000000 496 order:5 TotalcpuniceUsage=0.000000 497 order:6 TotalcpusoftIrqUsage=0.000000 498 order:7 TotalcpusystemUsage=0.501253 499 order:8 TotalcpuuserUsage=0.250627 500 order:9 cpu0Frequency=1992000 501 order:10 cpu0Usage=0.000000 502 order:11 cpu0idleUsage=100.000000 503 order:12 cpu0ioWaitUsage=0.000000 504 order:13 cpu0irqUsage=0.000000 505 order:14 cpu0niceUsage=0.000000 506 order:15 cpu0softIrqUsage=0.000000 507 order:16 cpu0systemUsage=0.000000 508 order:17 cpu0userUsage=0.000000 509 order:18 cpu1Frequency=1992000 510 order:19 cpu1Usage=0.000000 511 order:20 cpu1idleUsage=100.000000 512 order:21 cpu1ioWaitUsage=0.000000 513 order:22 cpu1irqUsage=0.000000 514 order:23 cpu1niceUsage=0.000000 515 order:24 cpu1softIrqUsage=0.000000 516 order:25 cpu1systemUsage=0.000000 517 order:26 cpu1userUsage=0.000000 518 order:27 cpu2Frequency=1992000 519 order:28 cpu2Usage=1.000000 520 order:29 cpu2idleUsage=99.000000 521 order:30 cpu2ioWaitUsage=0.000000 522 order:31 cpu2irqUsage=0.000000 523 order:32 cpu2niceUsage=0.000000 524 order:33 cpu2softIrqUsage=0.000000 525 order:34 cpu2systemUsage=1.000000 526 order:35 cpu2userUsage=0.000000 527 order:36 cpu3Frequency=1992000 528 order:37 cpu3Usage=0.000000 529 order:38 cpu3idleUsage=100.000000 530 order:39 cpu3ioWaitUsage=0.000000 531 order:40 cpu3irqUsage=0.000000 532 order:41 cpu3niceUsage=0.000000 533 order:42 cpu3softIrqUsage=0.000000 534 order:43 cpu3systemUsage=0.000000 535 order:44 cpu3userUsage=0.000000 536 order:45 gpuFrequency=200000000 537 order:46 gpuLoad=0.000000 538 order:47 gpu-thermal=40000.000000 539 order:48 soc-thermal=40.625000 540 order:49 memAvailable=1142820 541 order:50 memFree=687988 542 order:51 memTotal=1935948 543 order:52 ddrFrequency=800000000 544 order:53 networkDown=0 545 order:54 networkUp=0 546 order:55 capture=data/local/tmp/capture/screenCap_1501837838669.png 547 548 ... 549 550 command exec finished! 551 # 552 ``` 553 554- 全量采集示例2,采集指定应用信息,包括cpu、gpu、温度、fps、内存信息、DDR信息、网络速率、屏幕截图 555 556 ``` 557 # SP_daemon -N 10 -PKG ohos.samples.ecg -c -g -t -f -r -d -net -snapshot 558 559 order:0 timestamp=1501837949706 560 order:1 ProcAppName=ohos.samples.ecg 561 order:2 ProcCpuLoad=0.000000 562 order:3 ProcCpuUsage=38.775000 563 order:4 ProcId=1960 564 order:5 ProcSCpuUsage=8.875000 565 order:6 ProcUCpuUsage=29.900000 566 order:7 TotalcpuUsage=85.416667 567 order:8 TotalcpuidleUsage=14.583333 568 order:9 TotalcpuioWaitUsage=0.000000 569 order:10 TotalcpuirqUsage=0.000000 570 order:11 TotalcpuniceUsage=0.000000 571 order:12 TotalcpusoftIrqUsage=0.000000 572 order:13 TotalcpusystemUsage=33.072917 573 order:14 TotalcpuuserUsage=52.343750 574 order:15 cpu0Frequency=1992000 575 order:16 cpu0Usage=92.929293 576 order:17 cpu0idleUsage=7.070707 577 order:18 cpu0ioWaitUsage=0.000000 578 order:19 cpu0irqUsage=0.000000 579 order:20 cpu0niceUsage=0.000000 580 order:21 cpu0softIrqUsage=0.000000 581 order:22 cpu0systemUsage=40.404040 582 order:23 cpu0userUsage=52.525253 583 order:24 cpu1Frequency=1992000 584 order:25 cpu1Usage=82.291667 585 order:26 cpu1idleUsage=17.708333 586 order:27 cpu1ioWaitUsage=0.000000 587 order:28 cpu1irqUsage=0.000000 588 order:29 cpu1niceUsage=0.000000 589 order:30 cpu1softIrqUsage=0.000000 590 order:31 cpu1systemUsage=29.166667 591 order:32 cpu1userUsage=53.125000 592 order:33 cpu2Frequency=1992000 593 order:34 cpu2Usage=81.111111 594 order:35 cpu2idleUsage=18.888889 595 order:36 cpu2ioWaitUsage=0.000000 596 order:37 cpu2irqUsage=0.000000 597 order:38 cpu2niceUsage=0.000000 598 order:39 cpu2softIrqUsage=0.000000 599 order:40 cpu2systemUsage=31.111111 600 order:41 cpu2userUsage=50.000000 601 order:42 cpu3Frequency=1992000 602 order:43 cpu3Usage=85.858586 603 order:44 cpu3idleUsage=14.141414 604 order:45 cpu3ioWaitUsage=0.000000 605 order:46 cpu3irqUsage=0.000000 606 order:47 cpu3niceUsage=0.000000 607 order:48 cpu3softIrqUsage=0.000000 608 order:49 cpu3systemUsage=32.323232 609 order:50 cpu3userUsage=53.535354 610 order:51 gpuFrequency=200000000 611 order:52 gpuLoad=29.000000 612 order:53 gpu-thermal=41875.000000 613 order:54 soc-thermal=45.000000 614 order:55 fps=40 615 order:56 fpsJitters=14482127;;28966003;;28971836;;14484751;;28952878;;28970962;;14480959;;28968337;;14476001;;28967461;;28968045;;14477751;;28966878;;28975337;;14475126;;28962795;;28967461;;14496710;;28953169;;28966003;;14483002;;28963961;;28965711;;28964836;;28966295;;14550085;;28898628;;28964544;;28975628;;14497293;;28938878;;43454546;;28966003;;28973295;;28959878;;28964252;;14476585;;28965128;;28970670;;14478626 616 order:57 refreshrate=69 617 order:58 arktsHeapPss=10970 618 order:59 gpuPss=0 619 order:60 graphicPss=10800 620 order:61 heapAlloc=0 621 order:62 heapFree=0 622 order:63 heapSize=0 623 order:64 memAvailable=1137784 624 order:65 memFree=682592 625 order:66 memTotal=1935948 626 order:67 nativeHeapPss=21398 627 order:68 privateClean=24816 628 order:69 privateDirty=44932 629 order:70 pss=91587 630 order:71 sharedClean=100512 631 order:72 sharedDirty=36832 632 order:73 stackPss=1444 633 order:74 swap=0 634 order:75 swapPss=0 635 order:76 ddrFrequency=800000000 636 order:77 networkDown=0 637 order:78 networkUp=0 638 order:79 capture=data/local/tmp/capture/screenCap_1501837950216.png 639 640 ... 641 642 command exec finished! 643 # 644 ``` 645 646 >**说明** 647 > 648 >- 使用该命令采集时需进入被测应用内。 649 650 651#### 通过-start开启采集 652 653先执行start开始采集命令,然后操作设备或应用,最后执行stop结束采集命令。 654 655| 命令参数 |必选| 说明 | 656| :-----|:-----| :--------------------- | 657| -start |是| 开始采集,该命令参数后可添加基础采集命令,一秒采集一次。 | 658| -stop |是| 结束采集,执行后会生成采集报告。 | 659 660##### 使用示例 661 662 ``` 663 开始采集 664 # SP_daemon -start -c 665 SP_daemon Collection begins 666 667 668 command exec finished! 669 # 670 671 结束采集 672 # SP_daemon -stop 673 SP_daemon Collection ended 674 Output Path: data/local/tmp/smartperf/1/t_index_info.csv 675 676 677 command exec finished! 678 # 679 ``` 680 >**说明** 681 > 682 >- 开始采集示例1(采整机):SP_daemon -start -c -g -t -r -d -net -snapshot。 683 > 684 >- 开始采集示例2(采整机和进程):SP_daemon -start -PKG ohos.samples.ecg -c -g -t -f -r -d -net -snapshot。 685 > 686 >- 启停服务文件输出路径为:data/local/tmp/smartperf/1/t_index_info.csv,可通过hdc file recv的方式导出查看报告。具体请参考[查看csv采集结果](#查看csv采集结果)。 687 688#### 查看csv采集结果 689 690若采集结果保存在csv文件中,可以按照如下操作导出和查看结果内容。 691 692 - 采集结果默认输出路径:/data/local/tmp/data.csv 693 694 - 查看文件位置 695 696 ``` 697 C:\Users\issusser>hdc shell 698 # cd data/local/tmp 699 # ls 700 data.csv 701 # 702 ``` 703 704 - 导出文件 705 ``` 706 C:\Users\issusser>hdc file recv data/local/tmp/data.csv D:\ 707 [I][2023-11-08 16:16:41] HdcFile::TransferSummary success 708 FileTransfer finish, Size:429, File count = 1, time:6ms rate:71.50kB/s 709 710 C:\Users\issusser> 711 ``` 712 713 - 打开data.csv查看采集数据 714 715 在自定义导出路径里找到data.csv文件打开查看采集数据表,data.csv数据名描述如下: 716 717 | 数据项 | 说明 |备注| 718 | :-----| :--------------------- |:-----| 719 | cpuFrequency | CPU大中小核频率。 |单位:Hz| 720 | cpuUasge | CPU各核使用率。 |%| 721 | cpuidleUsage | CPU空闲态使用率。 |%| 722 | cpuioWaitUsage | 等待I/O的使用率。 |%| 723 | cpuirqUsage | 硬中断的使用率。 |%| 724 | cpuniceUsage | 低优先级用户态使用率。 |%| 725 | cpusoftIrqUsage | 软中断的使用率。 |%| 726 | cpusystemUsage | 系统/内核态使用率。 |%| 727 | cpuuserUsage | 用户态使用率。 |%| 728 | ProcId | 进程id。 |-| 729 | ProcAppName | app包名。 |-| 730 | ProcCpuLoad | 进程CPU负载占比。 |%| 731 | ProcCpuUsage | 进程CPU使用率。 |%| 732 | ProcUCpuUsage | 进程用户态CPU使用率。 |%| 733 | ProcSCpuUsage | 进程内核态CPU使用率。 |%| 734 | gpuFrequ | 整机GPU的频率。 |%| 735 | gpuLoad | 整机GPU的负载占比。 |%| 736 | currentNow | 当前读到的电流值。 |单位:mA| 737 | voltageNow | 当前读到的电压值。 |单位:μV| 738 | fps | 每秒帧数。 |单位:fps| 739 | fpsJitters | 每一帧绘制间隔。 |单位:ns| 740 | refreshrate | 屏幕刷新率。 |单位:Hz| 741 | networkDown | 下行速率。 |单位:byte/s| 742 | networkUp | 上行速率。 |单位:byte/s| 743 | ddrFrequency | DDR频率。 |单位:Hz| 744 | gpu-thermal | GPU温度。 |单位:°C| 745 | soc-thermal | 系统芯片温度。 |单位:°C| 746 | memAvailable | 整机可用内存。 |单位:KB| 747 | memFree | 整机空闲内存。 |单位:KB| 748 | memTotal | 整机总内存。 |单位:KB| 749 | pss | 进程实际使用内存。 |单位:KB| 750 | sharedClean | 共享的未改写页面。 |单位:KB| 751 | sharedDirty | 共享的已改写页面。 |单位:KB| 752 | priviateClean | 私有的未改写页面。 |单位:KB| 753 | privateDirty | 私有的已改写页面。 |单位:KB| 754 | swapTotal | 总的交换内存。 |单位:KB| 755 | swapPss | 交换的pss内存。 |单位:KB| 756 | HeapSize | 堆内存大小。 |单位:KB| 757 | HeapAlloc | 可分配的堆内存大小。 |单位:KB| 758 | HeapFree | 剩余的堆内存大小。 |单位:KB| 759 | gpuPss | 使用的gpu内存大小。 |单位:KB| 760 | graphicPss | 使用的图形内存大小。 |单位:KB| 761 | arktsHeapPss | 使用的arkts内存大小。 |单位:KB| 762 | nativeHeapPss | 使用的native内存大小。 |单位:KB| 763 | stackPss | 使用的栈内存大小。 |单位:KB| 764 | timeStamp | 当前时间戳。 |对应采集时间| 765 766### 场景化采集 767 768除基本采集外,还支持采集响应和完成时延等内容。场景化采集结果不写入data.csv,采集结果直接在命令框显示。 769 770| 命令参数 |必选| 说明 | 771| :-----|:-----| :--------------------- | 772| -editor|是| 场景化采集标识,后可添加参数配置项。 | 773| -responseTime|否| 响应时延。 | 774| -completeTime|否| 完成时延。 | 775| -fpsohtest|否| validator用于获取fps,1秒采集一次,默认采集10次。 | 776 777#### 使用示例 778 779- 应用响应时延(命令仅支持RK) 780 781 ``` 782 # SP_daemon -editor responseTime ohos.samples.ecg ohtest 783 time:544ms 784 785 command exec finished! 786 ``` 787 >**说明** 788 > 789 >- 采集前先进入应用内,在命令框回车后切换至应用内页面,等待打印采集结果。 790 791- 应用完成时延(命令仅支持RK) 792 793 ``` 794 # SP_daemon -editor completeTime ohos.samples.ecg ohtest 795 time:677ms 796 797 command exec finished! 798 ``` 799 >**说明** 800 > 801 >- 采集前先进入应用内,在命令框回车后切换至应用内页面,等待打印采集结果。 802 803- validator获取应用页面帧率 804 805 ``` 806 # SP_daemon -editor fpsohtest 807 set num:10 successfps:0|1726909713442fps:97|1726909714442fps:113|1726909715442fps:116|1726909716442fps:116|1726909717442fps:118|1726909718442fps:114|1726909719442fps:114|1726909720442fps:115|1726909721442fps:118|1726909722442SP_daemon exec finished! 808 ``` 809 >**说明** 810 > 811 >- 执行命令后需滑动或切换当前页面,等待10s后打印采集结果。 812 813### 其他采集 814 815当前设备电量采集结果可写入csv文件,其它命令需单独采集,采集结果不写入data.csv,仅在命令框显示。 816 817| 命令参数 |必选| 说明 | 818| :-----|:-----| :--------------------- | 819| -screen |否| 采集屏幕分辨率和刷新率。 | 820| -deviceinfo|否| 获取设备信息。 | 821| -server|否| 启停采集用来拉起daemon进程。 | 822| -clear|否| 清除所有SP_daemon进程。 | 823| -ohtestfps|否| validator用于获取fps,可设置采集次数(1秒采集一次)。 | 824| -editorServer|否| editor工具用来拉起daemon进程。 | 825| -recordcapacity|否| 获取当前设备电量。 | 826| -profilerfps |否| 采集当前界面fps。 | 827 828#### 使用示例 829 830- 获取屏幕分辨率 831 832 ``` 833 # SP_daemon -screen 834 activeMode: 720x1280, refreshrate=69 835 836 837 command exec finished! 838 # 839 ``` 840 >**说明** 841 > 842 >- activeMode表示当前屏幕分辨率,refreshrate表示屏幕刷新率。 843 844- 获取设备信息 845 846 ``` 847 # SP_daemon -deviceinfo 848 abilist: default 849 activeMode: 720x1280 850 board: hw 851 brand: default 852 cpu_c1_cluster: 0 1 2 3 853 cpu_c1_max: 1992000 854 cpu_c1_min: 408000 855 cpu_cluster_name: policy0 856 daemonPerfVersion: 1.0.5 857 deviceTypeName: rk3568 858 fullname: OpenHarmony-5.1.0.46 859 gpu_max_freq: 800000000 860 gpu_min_freq: 200000000 861 model: ohos 862 name: OpenHarmony 3.2 863 sn: 150100424a5444345209d941bec6b900 864 version: OpenHarmony 5.1.0.46 865 866 command exec finished! 867 # 868 ``` 869 870- 启动一个进程来监听start和stop命令的socket消息 871 872 ``` 873 # SP_daemon -server 874 # 875 # pidof SP_daemon 876 7024 877 # 878 ``` 879 >**说明** 880 > 881 >- 可执行pidof SP_daemon查看进程id。 882 883- 清除SP_daemon进程ID 884 885 ``` 886 # pidof SP_daemon 887 2725 888 # SP_daemon -clear 889 890 891 command exec finished! 892 # 893 # pidof SP_daemon 894 # 895 ``` 896 >**说明** 897 > 898 >- 可执行pidof SP_daemon查看进程id。 899 900- validator用于获取当前页面帧率 901 902 ``` 903 # SP_daemon -ohtestfps 10 904 set num:10 success 905 fps:1|1501926684532 906 fps:18|1501926685532 907 fps:37|1501926686532 908 fps:41|1501926687532 909 fps:42|1501926688532 910 fps:16|1501926689532 911 fps:40|1501926690532 912 fps:40|1501926691532 913 fps:42|1501926692532 914 fps:41|1501926693532 915 SP_daemon exec finished! 916 # 917 ``` 918 >**说明** 919 > 920 >- 该条命令里的10表示采集的次数(一秒采集一次),可以设置为其他正整数。 921 922 923- 启动一个进程来监听editor工具的socket消息 924 925 ``` 926 # SP_daemon -editorServer 927 928 929 command exec finished! 930 ``` 931 932 933- 获取电池电量 934 935 ``` 936 # SP_daemon -recordcapacity 937 recordTime: 1726903063 938 recordPower: 5502 939 ``` 940 >**说明** 941 > 942 >- recordTime表示时间戳,recordPower表示当前时刻的电量。 943 > 944 >- 该命令需单独采集,采集结果写入/data/local/tmp/powerLeftRecord.csv,可以使用hdc file recv导出到本地。具体请参考[查看csv采集结果](#查看csv采集结果)。 945 946- 采集当前界面fps 947 948 ``` 949 # SP_daemon -profilerfps 10 950 set num:10 success 951 fps:0|1711692357278 952 fps:0|1711692358278 953 fps:1|1711692359278 954 fps:0|1711692360278 955 fps:0|1711692361278 956 fps:0|1711692362278 957 fps:0|1711692363278 958 fps:0|1711692364278 959 fps:26|1711692365278 960 fps:53|1711692366278 961 SP_daemon exec finished! 962 # 963 ``` 964 >**说明** 965 > 966 >- 该条命令里的100表示采集的次数(一秒采集一次),可以设置为其他正整数。 967 968- fps分段采集 969 970 ``` 971 # SP_daemon -profilerfps 100 -sections 10 972 set num:100 success 973 fps:0|1711692393278 974 fps:0|1711692394278 975 fps:0|1711692395278 976 fps:44|1711692396278 977 sectionsFps:0|1711692396278 978 sectionsFps:0|1711692396378 979 sectionsFps:40|1711692396478 980 sectionsFps:60|1711692396578 981 sectionsFps:60|1711692396678 982 sectionsFps:60|1711692396778 983 sectionsFps:60|1711692396878 984 sectionsFps:40|1711692396978 985 sectionsFps:60|1711692397078 986 sectionsFps:60|1711692397178 987 fps:51|1711692397278 988 989 ... 990 991 SP_daemon exec finished! 992 # 993 ``` 994 >**说明** 995 > 996 >- 该条命令里的100表示采集的次数(一秒采集一次),可以设置为其他正整数,10表示分段:目前支持设置 1-10(正整数)段采集。 997 998 999<!--RP3End-->