• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# @ohos.hiviewdfx.jsLeakWatcher (js泄露检测)
2
3本模块提供了监控js对象是否发生泄露的能力。
4
5> **说明:**
6>
7> 本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
8
9## 导入模块
10
11```js
12import { jsLeakWatcher } from '@kit.PerformanceAnalysisKit';
13```
14
15
16## jsLeakWatcher.enable
17
18enable(isEnable: boolean): void
19
20使能js对象泄露检测,默认关闭。
21
22**系统能力**:SystemCapability.HiviewDFX.HiChecker
23
24**参数:**
25
26| 参数名 | 类型 | 必填 | 说明 |
27| -------- | -------- | -------- | -------- |
28| isEnable | boolean | 是 | 是否使能jsLeakWatcher。 |
29
30**示例:**
31
32```js
33jsLeakWatcher.enable(true);
34```
35
36
37## jsLeakWatcher.watch
38
39watch(obj: object, msg: string): void
40
41注册待检测泄露的对象。
42
43**系统能力**:SystemCapability.HiviewDFX.HiChecker
44
45**参数:**
46
47| 参数名 | 类型 | 必填 | 说明 |
48| -------- | -------- | -------- | -------- |
49| obj | object | 是 | 需要检测的对象名。 |
50| msg | string | 是 | 自定义对象信息。 |
51
52**示例:**
53
54```js
55let obj:Object = new Object();
56jsLeakWatcher.watch(obj, "Trace Object");
57```
58
59
60## jsLeakWatcher.check
61
62check(): string
63
64获取已通过jsLeakWatcher.watch注册且可能发生泄露的对象列表,触发GC后未被回收的对象会被标记为泄露。
65
66**系统能力**:SystemCapability.HiviewDFX.HiChecker
67
68**返回值:**
69
70| 类型    | 说明                                                       |
71| ------- | ---------------------------------------------------------- |
72| string | JSON格式的疑似泄漏对象列表。 |
73
74**示例:**
75```js
76let leakObjlist:string = jsLeakWatcher.check();
77```
78
79
80## jsLeakWatcher.dump
81
82dump(filePath: string): Array<string>
83
84导出泄漏列表和虚拟机内存快照。
85
86**系统能力**:SystemCapability.HiviewDFX.HiChecker
87
88**参数:**
89
90| 参数名 | 类型 | 必填 | 说明 |
91| -------- | -------- | -------- | -------- |
92| filePath | string | 是 | 导出信息生成的文件存放的路径。 |
93
94**返回值:**
95
96| 类型    | 说明                                                       |
97| ------- | ---------------------------------------------------------- |
98| Array<string> | 导出结果的数组。索引0为泄露列表文件名,后缀为.jsleaklist;索引1为虚拟机内存快照文件名,后缀为.heapsnapshort。 |
99
100**错误码:**
101
102以下错误码的详细介绍请参见[通用错误码](../errorcode-universal.md)。
103
104| 错误码ID | 错误信息 |
105| ------- | ----------------------------------------------------------------- |
106| 401 | Parameter error. The filepath is invalid.                      |
107
108**示例:**
109
110```js
111let context = this.getUIContext().getHostContext();
112let files: Array<string> = jsLeakWatcher.dump(context?.filesDir);
113```