---
title: 总体介绍
description: "本章节提供离线推理场景下，如何通过API方式采集性能数据，支持以下实现方式："
url: https://www.hiascend.com/document/detail/zh/canncommercial/latest/devaids/Profiling/atlasprofiling_16_0042.html
sourcePath: /source/zh/canncommercial/900/devaids/Profiling/atlasprofiling_16_0042.html
indexId: ad475ccb132d2fc705e634193b36909f37dbb31566c257d25b81612ad9afd44175
---
# 总体介绍

本章节提供离线推理场景下，如何通过API方式采集性能数据，支持以下实现方式：


**表1 采集方式**

| 采集方式 | 说明 |
| --- | --- |
| 方式一：采集并落盘性能数据 | 将采集到的性能数据写入文件，再使用msprof工具解析该文件，并展示性能分析数据。 |
| 方式二：使用msproftx扩展接口采集并落盘性能数据 | 当用户需要定位应用程序或上层框架程序的性能瓶颈时，可在Profiling采集进程内（aclprofStart接口、aclprofStop接口之间）调用msproftx扩展接口，开启记录应用程序执行期间特定事件发生的时间跨度，并将数据写入性能数据文件，再使用msprof工具解析该文件，并导出展示性能分析数据。 |
| 方式三：订阅算子信息 | 将采集到的性能数据解析后写入管道，由用户读入内存，再由用户调用API获取性能数据。 |


- 使用接口进行性能数据采集前，须参见《应用开发 (C&C++)(https://www.hiascend.com/document/detail/zh/canncommercial/900/programug/acldevg/aclcppdevg_000006.html)》完成应用工程开发、编译和运行。
- 如果在初始化过程中（aclprofInit + aclprofStart）有算子正在执行，由于相关资源尚未初始化完成，可能出现错误日志，但这不会影响正常的业务功能。建议启用Profiling之前调用aclrtSynchronizeStream或aclrtSynchronizeStreamWithTimeout接口进行一次流同步。
- 方式一和方式二不能与方式三交叉调用。
