1# Hitrace 2 3 4## 概述 5 6hiTraceMeter为开发者提供系统性能打点接口。 7 8开发者通过在自己的业务逻辑中的关键代码位置调用HiTraceMeter系统跟踪提供的API接口,能够有效进行关键执行流程耗时度量和问题定位。 9 10\@syscap SystemCapability.HiviewDFX.HiTrace 11 12**起始版本:** 13 1410 15 16 17## 汇总 18 19 20### 文件 21 22| 名称 | 描述 | 23| -------- | -------- | 24| [trace.h](trace_8h.md) | HiTraceMeter模块打点接口定义,通过这些接口实现性能打点相关功能。 <br>**引用文件**:<hitrace/trace.h> <br>**库**:libhitrace_ndk.z.so| 25 26### 函数 27 28| 名称 | 描述 | 29| -------- | -------- | 30| [OH_HiTrace_StartTrace](#oh_hitrace_starttrace) (const char \*name) | 标记一个同步跟踪耗时任务的开始。 | 31| [OH_HiTrace_FinishTrace](#oh_hitrace_finishtrace) (void) | 标记一个同步跟踪耗时任务的结束。 | 32| [OH_HiTrace_StartAsyncTrace](#oh_hitrace_startasynctrace) (const char \*name, int32_t taskId) | 标记一个异步跟踪耗时任务的开始。 | 33| [OH_HiTrace_FinishAsyncTrace](#oh_hitrace_finishasynctrace) (const char \*name, int32_t taskId) | 标记一个异步跟踪耗时任务的结束。 | 34| [OH_HiTrace_CountTrace](#oh_hitrace_counttrace) (const char \*name, int64_t count) | 用于跟踪给定整数变量名和整数值。 | 35 36 37## 函数说明 38 39 40### OH_HiTrace_CountTrace() 41 42 43``` 44void OH_HiTrace_CountTrace (const char * name, int64_t count ) 45``` 46 47**描述:** 48 49用于跟踪给定整数变量名和整数值。 50 51多次执行该接口可以跟踪给定整数变量在不同时刻的数值变化。 52 53**参数:** 54 55| 名称 | 描述 | 56| -------- | -------- | 57| name | 整数变量跟踪的名字,不必与真实变量名相同。 | 58| count | 整数数值,一般可以传入整数变量。 | 59 60**起始版本:** 61 6210 63 64 65### OH_HiTrace_FinishAsyncTrace() 66 67 68``` 69void OH_HiTrace_FinishAsyncTrace (const char * name, int32_t taskId ) 70``` 71 72**描述:** 73 74标记一个异步跟踪耗时任务的结束。 75 76在异步操作完成后如回调函数中调用,进行结束打点。 和OH_HiTrace_StartAsyncTrace配对使用,参数name和taskId必须与异步跟踪的开始打点接口OH_HiTrace_StartAsyncTrace的对应参数值一致。 77 78**参数:** 79 80| 名称 | 描述 | 81| -------- | -------- | 82| name | 异步跟踪的名字。 | 83| taskId | 异步跟踪的ID。异步跟踪开始和结束由于不是顺序发生的,所以需要通过name和每次执行唯一的taskId进行开始和结束的匹配。 | 84 85**起始版本:** 86 8710 88 89 90### OH_HiTrace_FinishTrace() 91 92 93``` 94void OH_HiTrace_FinishTrace (void ) 95``` 96 97**描述:** 98 99标记一个同步跟踪耗时任务的结束。 100 101必须和OH_HiTrace_StartTrace配对使用。跟踪数据解析时,和其前执行流程中最近的OH_HiTrace_StartTrace进行匹配。 102 103**起始版本:** 104 10510 106 107 108### OH_HiTrace_StartAsyncTrace() 109 110 111``` 112void OH_HiTrace_StartAsyncTrace (const char * name, int32_t taskId ) 113``` 114 115**描述:** 116 117标记一个异步跟踪耗时任务的开始。 118 119用于在异步操作前调用进行开始打点,异步跟踪开始和结束数据由于不是顺序发生的,所以解析时需要通过一个唯一的taskId进行识别,这个taskId作为异步接口的参数传入。 和OH_HiTrace_FinishAsyncTrace配对使用,参数name和taskId相同的这两个接口调用匹配成一个异步跟踪耗时任务。 如果有多个相同name的任务需要跟踪或者对同一个任务跟踪多次,并且任务同时被执行,则每次调用startTrace的taskId不相同。 如果具有相同name的任务是串行执行的,则taskId可以相同。 120 121**参数:** 122 123| 名称 | 描述 | 124| -------- | -------- | 125| name | 异步跟踪的名字。 | 126| taskId | 异步跟踪的ID。 异步跟踪开始和结束由于不是顺序发生的,所以需要通过name和每次执行唯一的taskId进行开始和结束的匹配。 | 127 128**起始版本:** 129 13010 131 132 133### OH_HiTrace_StartTrace() 134 135 136``` 137void OH_HiTrace_StartTrace (const char * name) 138``` 139 140**描述:** 141 142标记一个同步跟踪耗时任务的开始。 143 144同步跟踪打点接口OH_HiTrace_StartTrace和OH_HiTrace_FinishTrace必须配对使用。 OH_HiTrace_StartTrace和OH_HiTrace_FinishTrace函数对可以以嵌套模式使用,跟踪数据解析时使用栈式数据结构进行匹配。 145 146**参数:** 147 148| 名称 | 描述 | 149| -------- | -------- | 150| name | 跟踪的名字。 | 151 152**起始版本:** 153 15410 155