---
title: 采集并落盘性能数据
description: "通过调用API方式使能性能数据采集功能，从而自动采集性能原始数据。采集性能原始数据成功后，可将采集的原始数据拷贝到装有工具的开发环境上进行原始性能数据解析，可视化展示原始性能数据解析结果。"
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/Profiling/atlasprofiling_16_0043.html
sourcePath: /source/zh/canncommercial/900/devaids/Profiling/atlasprofiling_16_0043.html
indexId: 50696b00c57ab1b4906459eed2deb61c1a5c0263b0440ddc24c63fd84130ca9275
---
# 采集并落盘性能数据

通过调用API方式使能性能数据采集功能，从而自动采集性能原始数据。采集性能原始数据成功后，可将采集的原始数据拷贝到装有工具的开发环境上进行原始性能数据解析，可视化展示原始性能数据解析结果。

#### API简介


**表1 API简介**

| 接口 | 说明 |
| --- | --- |
| aclprofCreateConfig | 创建Profiling配置。与aclprofDestroyConfig成对使用。 |
| aclprofInit | 初始化Profiling，目前用于设置保存性能数据的文件的路径。与aclprofFinalize成对使用。 |
| aclprofSetConfig | aclprofCreateConfig的扩展接口，用于设置采集配置参数。 |
| aclprofStart | 下发Profiling请求，使能对应数据的采集。与aclprofStop成对使用。 |
| aclprofStop | 停止Profiling数据采集。与aclprofStart成对使用。 |
| aclprofFinalize | 结束Profiling。与aclprofInit成对使用。 |
| aclprofDestroyConfig | 销毁通过aclprofCreateConfig接口创建的aclprofConfig类型的数据。与aclprofCreateConfig成对使用。 |


aclprofInit接口传入的性能采集数据的落盘路径，需要确保用户进程具有读写权限。

接口详细说明，请参见《应用开发 (C&C++)(https://www.hiascend.com/document/detail/zh/canncommercial/900/programug/acldevg/aclcppdevg_000006.html)》。


#### API调用示例

API调用示例如下：

```
// 1.调用aclInit初始化

// 2.申请运行管理资源，包括设置用于计算的Device、创建Context、创建Stream

// 3.Profiling初始化
// 设置数据落盘路径
const char *aclProfPath = "./output";
aclprofInit(aclProfPath, strlen(aclProfPath));

// 4.进行Profiling配置
uint32_t deviceIdList[1] = {0};    // 须根据实际环境的Device ID配置
// 创建配置结构体
aclprofConfig *config = aclprofCreateConfig(deviceIdList, 1, ACL_AICORE_ARITHMETIC_UTILIZATION, 
    nullptr,ACL_PROF_ACL_API | ACL_PROF_TASK_TIME);
const char *memFreq = "15";
ret = aclprofSetConfig(ACL_PROF_SYS_HARDWARE_MEM_FREQ, memFreq, strlen(memFreq));
aclprofStart(config);

// 5.模型加载，加载成功后，返回标识模型的modelId

// 6.创建aclmdlDataset类型的数据，用于描述模型的输入数据input、输出数据output
 
// 7.执行模型
ret = aclmdlExecute(modelId, input, output);

// 8.处理模型推理结果

// 9.释放描述模型输入/输出信息、内存等资源，卸载模型

// 10.关闭Profiling配置, 释放配置资源, 释放Profiling组件资源
aclprofStop(config);
aclprofDestroyConfig(config);
aclprofFinalize();

// 11.释放运行管理资源

// 12.调用aclFinalize去初始化
//......
```
