函数:set_stamp_trace_message
功能介绍
功能
当用户需要定位应用程序或上层框架程序的性能瓶颈时,可在Profiling采集进程内(acl.prof.start接口、acl.prof.stop接口之间)调用Profiling pyACL API扩展接口(统称为msproftx功能),开启记录应用程序执行期间特定事件发生的时间跨度,并将数据写入Profiling数据文件,再使用Profiling工具解析该文件,并导出展示性能分析数据。
Profiling工具解析导出操作请参见《性能分析工具使用指南》下的“Profiling数据解析”和“Profiling数据导出”。
接口调用方式:在acl.prof.start和acl.prof.stop接口之间调用acl.prof.create_stamp、acl.prof.set_stamp_trace_message、acl.prof.mark、acl.prof.push、acl.prof.pop、acl.prof.range_start、acl.prof.range_stop、acl.prof.destroy_stamp接口。该方式可获取应用程序执行期间特定时间发生的事件并记录事件发生的时间跨度。
一个进程内,可以根据需求多次调用这些接口。
接口约束说明
- 调用接口要求:msproftx功能相关接口须在acl.prof.start接口与acl.prof.stop接口之间调用。其中配对使用的接口有:acl.prof.create_stamp/acl.prof.destroy_stamp、acl.prof.push/acl.prof.pop、acl.prof.range_start/acl.prof.range_stop。
- 接口调用顺序:acl.prof.start接口(指定Device 0和Device 1)-->acl.prof.create_stamp接口-->acl.prof.set_stamp_trace_message接口-->acl.prof.mark接口-->(acl.prof.push接口-->acl.prof.pop接口)或(acl.prof.range_start接口-->acl.prof.range_stop接口)-->acl.prof.destroy_stamp接口-->acl.prof.stop接口(与acl.prof.start接口的aclprofConfig数据保持一致)。
父主题: Profiling pyACL API for Extension(Profiling pyACL API扩展接口)
函数:create_stamp
| C函数原型 | void *aclprofCreateStamp() |
|---|---|
| Python函数 | stamp = acl.prof.create_stamp() |
| 函数功能 | 创建msproftx事件标记。后续调用函数:mark、函数:set_stamp_trace_message、函数:push和函数:range_start接口时需要以描述该事件的指针地址作为输入,表示记录该事件发生的时间跨度。同步接口。 与函数:destroy_stamp接口配对使用,需提前调用函数:start接口。 |
| 输入说明 | 无 |
| 返回值说明 | stamp:int,指针地址。 - 返回0表示失败。 - 返回void类型的指针地址表示成功。 |
| 约束说明 | 无 |
| 参考资源 | 接口调用示例,参见Profiling性能数据采集。 |
父主题: Profiling pyACL API for Extension(Profiling pyACL API扩展接口)
函数:set_stamp_trace_message
| C函数原型 | aclError aclprofSetStampTraceMessage(void *stamp, const char *msg, uint32_t msgLen) |
|---|---|
| Python函数 | ret = acl.prof.set_stamp_trace_message(stamp, msg, msg_len**)** |
| 函数功能 | 为msproftx事件标记携带字符串描述,在Profiling解析并导出结果中msprof_tx summary数据展示。同步接口。 Profiling解析并导出结果请参见《性能分析工具使用指南》下的“性能数据文件参考>msproftx数据说明”。 |
| 输入说明 | stamp:int,Stamp指针地址,指代msproftx事件标记。指定函数:create_stamp接口的指针地址。 msg:int,字符串内容地址。 msg_len:int,字符串长度。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 在函数:create_stamp接口和函数:destroy_stamp接口之间调用。 |
| 参考资源 | 接口调用示例,参见Profiling性能数据采集。 |
父主题: Profiling pyACL API for Extension(Profiling pyACL API扩展接口)
函数:mark
| C函数原型 | aclError aclprofMark(void *stamp) |
|---|---|
| Python函数 | ret = acl.prof.mark(stamp) |
| 函数功能 | msproftx标记瞬时事件。同步接口。 调用此接口后,Profiling自动在Stamp中加上当前时间戳,将Event type设置为Mark,表示开始一次msproftx采集。 |
| 输入说明 | stamp:int,Stamp指针地址,指代msproftx事件标记。指定函数:create_stamp接口的指针地址。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | 在函数:create_stamp接口和函数:destroy_stamp接口之间调用。 |
| 参考资源 | 接口调用示例,参见Profiling性能数据采集。 |
父主题: Profiling pyACL API for Extension(Profiling pyACL API扩展接口)
函数:push
| C函数原型 | aclError aclprofPush(void *stamp) |
|---|---|
| Python函数 | ret = acl.prof.push(stamp) |
| 函数功能 | msproftx用于记录事件发生的时间跨度的开始时间。同步接口。 调用此接口后,Profiling自动在Stamp中记录开始的时间戳,将Event type设置为Push/Pop。 |
| 输入说明 | stamp:int,Stamp指针地址,指代msproftx事件标记。指定acl.prof.create_stamp接口的指针地址。 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | - 与函数:pop接口成对使用,表示时间跨度的开始和结束。 - 不能跨线程调用,若需要跨线程可使用函数:range_start/函数:range_stop接口。 - 在函数:create_stamp接口和函数:destroy_stamp接口之间调用。 |
| 参考资源 | 接口调用示例,参见Profiling性能数据采集。 |
父主题: Profiling pyACL API for Extension(Profiling pyACL API扩展接口)
函数:pop
| C函数原型 | aclError aclprofPop() |
|---|---|
| Python函数 | ret = acl.prof.pop() |
| 函数功能 | msproftx用于记录事件发生的时间跨度的结束时间。同步接口。 调用此接口后,Profiling自动在Stamp中记录采集结束的时间戳。 |
| 输入说明 | 无 |
| 返回值说明 | ret:int,错误码。 - 返回0表示成功。 - 返回其它值表示失败。 |
| 约束说明 | - 与函数:push接口成对使用,表示时间跨度的开始和结束。 - 不能跨线程调用。若需要跨线程可使用函数:range_start/函数:range_stop接口。 - 在函数:create_stamp接口和函数:destroy_stamp接口之间调用。 |
| 参考资源 | 接口调用示例,参见Profiling性能数据采集。 |
父主题: Profiling pyACL API for Extension(Profiling pyACL API扩展接口)
在线提单