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