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```