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 = getContext(this);
112let files:Array<string> = jsLeakWatcher.dump(context.filesDir);
113```