• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.bytrace (性能打点)
2
3<!--Kit: Performance Analysis Kit-->
4<!--Subsystem: HiviewDFX-->
5<!--Owner: @qq_437963121-->
6<!--Designer: @kutcherzhou1; @MontSaintMichel-->
7<!--Tester: @gcw_KuLfPSbe-->
8<!--Adviser: @foryourself-->
9
10本模块提供了追踪进程轨迹。
11
12> **说明:**
13> - 从API Version 8开始,该接口不再维护,推荐使用新接口[`@ohos.hiTraceMeter`](js-apis-hitracemeter.md)。
14> - 本模块首批接口从API version 7开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
15
16## 导入模块
17
18```js
19import { bytrace } from '@kit.PerformanceAnalysisKit';
20```
21
22## bytrace.startTrace
23
24startTrace(name: string, taskId: number, expectedTime?: number): void
25
26标记一个时间片跟踪任务的开始。
27
28> **说明:**
29> 如果有多个相同name的任务需要追踪或者对同一个任务要追踪多次,并且这些跟踪任务会同时被执行,则每次调用startTrace的taskId必须不一致。如果具有相同name的跟踪任务是串行执行的,则taskId可以相同。在下面bytrace.finishTrace的示例中会举例说明。
30
31**系统能力:** SystemCapability.HiviewDFX.HiTrace
32
33**参数:**
34
35| 参数名 | 类型 | 必填 | 说明 |
36| -------- | -------- | -------- | -------- |
37| name | string | 是 | 时间片跟踪任务名称 |
38| taskId | number | 是 | 时间片跟踪任务id |
39| expectedTime | number | 否 | 期望的耗时时间(单位:ms)。可选,默认为空 |
40
41
42**示例:**
43
44```js
45bytrace.startTrace("myTestFunc", 1);
46bytrace.startTrace("myTestFunc", 1, 5); // 从startTrace到finishTrace流程的期望耗时为5ms
47```
48
49## bytrace.finishTrace
50
51finishTrace(name: string, taskId: number): void
52
53标记一个时间片跟踪事件的结束。
54
55> **说明:**<br>
56> finishTrace的name和taskId必须与流程开始的startTrace对应参数值一致。
57
58**系统能力:** SystemCapability.HiviewDFX.HiTrace
59
60**参数:**
61
62| 参数名 | 类型 | 必填 | 说明 |
63| -------- | -------- | -------- | -------- |
64| name | string | 是 | 时间片跟踪任务名称 |
65| taskId | number | 是 | 时间片跟踪任务id |
66
67
68**示例:**
69
70```js
71bytrace.finishTrace("myTestFunc", 1);
72```
73
74```
75// 跟踪并行执行的同名任务
76bytrace.startTrace("myTestFunc", 1);
77// 业务流程......
78bytrace.startTrace("myTestFunc", 2);  // 第二个跟踪任务开始,同时第一个同名跟踪任务还没结束,出现了并行执行,对应接口的taskId需要不同
79// 业务流程......
80bytrace.finishTrace("myTestFunc", 1);
81// 业务流程......
82bytrace.finishTrace("myTestFunc", 2);
83```
84
85```
86// 跟踪串行执行的同名任务
87bytrace.startTrace("myTestFunc", 1);
88// 业务流程......
89bytrace.finishTrace("myTestFunc", 1);  // 第一个跟踪任务结束
90// 业务流程......
91bytrace.startTrace("myTestFunc", 1);   // 第二个跟踪任务开始,同名跟踪任务串行执行
92// 业务流程......
93bytrace.finishTrace("myTestFunc", 1);
94```
95
96## bytrace.traceByValue
97
98traceByValue(name: string, count: number): void
99
100标记预追踪耗时任务的数值变量,该变量的数值会不断变化。
101
102**系统能力:** SystemCapability.HiviewDFX.HiTrace
103
104**参数:**
105| 参数名 | 类型 | 必填 | 说明 |
106| -------- | -------- | -------- | -------- |
107| name | string | 是 | 数值变量的名称 |
108| count | number | 是 | 数值变量的值 |
109
110**示例:**
111
112```js
113let traceCount = 3;
114bytrace.traceByValue("myTestCount", traceCount);
115traceCount = 4;
116bytrace.traceByValue("myTestCount", traceCount);
117// 业务流程......
118```
119