# SP_daemon
## 简介
- OpenHarmony性能测试工具SmartPerf 命令行版本,可采集CPU、GPU、Temperature、Power、应用RAM、FPS等指标,通过设置采集指标,对采集数据进行实时打印、导出csv。
- 性能较差或无屏幕设备请使用命令行版本,带屏幕的设备且性能较好的设备推荐使用[UI版本](https://gitee.com/openharmony/developtools_profiler/blob/master/host/smartperf/client/client_ui/README_zh.md)。
## 代码目录
```
/developtools/profiler/host/smartperf/client/client_command
├── include # 头文件目录
├── BUILD.gn # SP_daemon bin打包配置文件
├── ByTrace.cpp # trace抓取代码文件
├── Capture.cpp # 截图代码文件
├── CPU.cpp # CPU采集代码文件
├── DDR.cpp # DDR采集代码文件
├── FPS.cpp # FPS采集代码文件
├── GPU.cpp # GPU采集代码文件
├── Power.cpp # 功耗采集代码文件
├── RAM.cpp # 内存采集代码文件
├── smartperf_command.cpp # 程序执行文件
├── smartperf_main.cpp # 程序入口文件
├── sp_profiler_factory.cpp # 采集工厂文件
├── sp_server_socket.cpp # 与SmartPerf hap通讯代码文件
├── sp_utils.cpp # 工具类
├── Temperature.cpp # 温度采集代码文件
```
## 约束条件
SmartPerf应用在3.2系统版本后开始预制使用。
## 功能特性
**1. 参数说明**
| 命令 | 功能 |是否必选|
| :-----| :--------------------- |:-----|
| -N | 设置采集次数。 |是|
| -PKG | 设置包名。 |否|
| -PID | 设置进程pid(对于ram适用)。 |否|
| -OUT | 设置csv输出目录。 |否|
| -c | 是否采集cpu。 |否|
| -g | 是否采集gpu。 |否|
| -f | 是否采集fps。 |否|
| -t | 是否采集温度。 |否|
| -p | 是否采集电流。 |否|
| -r | 是否采集内存(需指定进程pid)。 |否|
| -snapshot | 是否截图。 |否|
---
**2. 使用方式**
1)目前命令行版本已系统预制,可以进入shell,执行SP_daemon --help查看。
```bash
C:\Users\test>hdc_std shell
# SP_daemon --help
usage: SP_daemon
--------------------------------------------------------------------
These are common commands list:
-N set num of profiler
-PKG set pkgname of profiler
-PID set process id of profiler
-OUT set output path of CSV
-c get cpuFreq and cpuLoad
-g get gpuFreq and gpuLoad
-f get fps and fps jitters
-t get soc-temp gpu-temp ..
-p get current_now and voltage_now
-r get ram(pss)
-snapshot get screen capture
--------------------------------------------------------------------
Example: SP_daemon -N 20 -PKG ohos.samples.ecg -c -g -t -p -f
--------------------------------------------------------------------
command exec finished!
#
```
2)执行示例命令:SP_daemon -N 20 -PKG ohos.samples.ecg -c -g -t -p -f。
```
----------------------------------Print START------------------------------------
order:0 cpu0freq=1992000
order:1 cpu0load=23.469387
order:2 cpu1freq=1992000
order:3 cpu1load=26.262627
order:4 cpu2freq=1992000
order:5 cpu2load=19.000000
order:6 cpu3freq=1992000
order:7 cpu3load=74.747475
order:8 current_now=-1000.000000
order:9 gpu-thermal=48333.000000
order:10 gpufreq=200000000
order:11 gpuload=0.000000
order:12 soc-thermal=48888.000000
order:13 timestamp=1501925596847
order:14 voltage_now=4123456.000000
----------------------------------Print END--------------------------------------
----------------------------------Print START------------------------------------
order:0 cpu0freq=1992000
order:1 cpu0load=33.673470
order:2 cpu1freq=1992000
order:3 cpu1load=19.801979
order:4 cpu2freq=1992000
order:5 cpu2load=37.755100
order:6 cpu3freq=1992000
order:7 cpu3load=55.555553
order:8 current_now=-1000.000000
order:9 gpu-thermal=48333.000000
order:10 gpufreq=200000000
order:11 gpuload=0.000000
order:12 soc-thermal=48888.000000
order:13 timestamp=1501925597848
order:14 voltage_now=4123456.000000
----------------------------------Print END--------------------------------------
```
3)执行完毕后会在data/local/tmp生成data.csv文件,每次执行命令覆盖写入。
```bash
# cat /data/local/tmp/data.csv
cpu0freq,cpu0load,cpu1freq,cpu1load,cpu2freq,cpu2load,cpu3freq,cpu3load,current_now,gpu-thermal,gpufreq,gpuload,soc-thermal,timestamp,voltage_now
1992000,-1.000000,1992000,-1.000000,1992000,-1.000000,1992000,-1.000000,-1000.000000,48333.000000,200000000,0.000000,49444.000000,1501925677010,4123456.000000
1992000,16.326530,1992000,22.680412,1992000,62.626263,1992000,41.836735,-1000.000000,48333.000000,200000000,0.000000,48888.000000,1501925678011,4123456.000000
1992000,16.326530,1992000,35.353535,1992000,50.505051,1992000,42.857143,-1000.000000,48333.000000,200000000,0.000000,49444.000000,1501925679013,4123456.000000
```
---
## 发布版本
**3.2.0.0版本发布内容:预制SP_daemon bin文件,支持以下功能:**
1. 支持RK3568、Hi3516。
2. 支持Shell启动。
3. 支持采集整机CPU、GPU、POWER、TEMPERATURE、应用的FPS、RAM。