---
title: 功能介绍
description: "当用户需要定位应用程序或上层框架程序的性能瓶颈时，可在Profiling采集进程内（aclprofStart接口、aclprofStop接口之间）调用Profiling AscendCL API扩展接口（统称为msproftx功能），开启记录应用程序执行期间特定事件发生的时间跨度，并将数据写入Profiling数据文件，再使用Profiling工具解析该文件，并导出展示性能分析数据。"
url: https://www.hiascend.com/document/detail/zh/Atlas200IDKA2DeveloperKit/latest/Application%20Development%20Guide/aadgc/aclcppdevg_03_1580.html
sourcePath: /source/zh/Atlas200IDKA2DeveloperKit/23.0.RC2/Application Development Guide/aadgc/aclcppdevg_03_1580.html
indexId: a746e9e6b2519306fbcdd7ad51106b49e1f416fd288b951c31a329686d688f44105
---
# 功能介绍

#### 功能

当用户需要定位应用程序或上层框架程序的性能瓶颈时，可在Profiling采集进程内（aclprofStart接口、aclprofStop接口之间）调用Profiling AscendCL API扩展接口（统称为msproftx功能），开启记录应用程序执行期间特定事件发生的时间跨度，并将数据写入Profiling数据文件，再使用Profiling工具解析该文件，并导出展示性能分析数据。

Profiling工具解析导出操作请参见《性能分析工具使用指南(https://www.hiascend.com/document/detail/zh/canncommercial/700/devtools/auxiliarydevtool/atlasprofiling_16_0002.html)》下的“高级功能>数据解析与导出”。

接口调用方式：在aclprofStart和aclprofStop接口之间调用aclprofCreateStamp、aclprofSetStampTraceMessage、aclprofMark、aclprofPush、aclprofPop、aclprofRangeStart、aclprofRangeStop、aclprofDestroyStamp接口。该方式可获取应用程序执行期间特定时间发生的事件并记录事件发生的时间跨度。

一个进程内，可以根据需求多次调用这些接口。


#### 接口约束说明

- 调用接口要求：msproftx功能相关接口须在  aclprofStart
接口与  aclprofStop
接口之间调用。其中配对使用的接口有：  aclprofCreateStamp
/  aclprofDestroyStamp
、  aclprofPush
/  aclprofPop
、  aclprofRangeStart
/  aclprofRangeStop
。
- 接口调用顺序：aclprofStart接口(指定Device 0和Device 1)-->  aclprofCreateStamp
接口-->  aclprofSetStampTraceMessage
接口-->  aclprofMark
接口-->(  aclprofPush
接口-->  aclprofPop
接口)或(  aclprofRangeStart
接口-->  aclprofRangeStop
接口)-->  aclprofDestroyStamp
接口-->aclprofStop接口(与  aclprofStart
接口的  aclprofConfig
数据保持一致)。
