1# Debug调试 2 3> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** 4> 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。 5 6使用hidebug,可以获取应用内存的使用情况,包括应用进程的静态堆内存(native heap)信息、应用进程内存占用PSS(Proportional Set Size)信息等;可以完成虚拟机内存切片导出,虚拟机CPU Profiling采集等操作。 7 8## 导入模块 9 10``` 11import hidebug from '@ohos.hidebug'; 12``` 13 14 15## hidebug.getNativeHeapSize 16 17getNativeHeapSize(): bigint 18 19获取native heap内存的总大小。 20 21本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。 22 23**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug 24 25**返回值:** 26 27| 类型 | 说明 | 28| ------ | --------------------------- | 29| bigint | 返回native heap内存总大小。 | 30 31 32**示例:** 33 ``` 34 let nativeHeapSize = hidebug.getNativeHeapSize(); 35 ``` 36 37 38## hidebug.getNativeHeapAllocatedSize 39 40getNativeHeapAllocatedSize(): bigint 41 42获取native heap内存的已分配内存大小。 43 44本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。 45 46**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug 47 48 49**返回值:** 50| 类型 | 说明 | 51| ------ | --------------------------------- | 52| bigint | 返回native heap内存的已分配内存。 | 53 54 55**示例:** 56 ``` 57 let nativeHeapAllocatedSize = hidebug.getNativeHeapAllocatedSize(); 58 ``` 59 60 61## hidebug.getNativeHeapFreeSize 62 63getNativeHeapFreeSize(): bigint 64 65获取native heap内存的空闲内存大小。 66 67本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。 68 69**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug 70 71 72**返回值:** 73| 类型 | 说明 | 74| ------ | ------------------------------- | 75| bigint | 返回native heap内存的空闲内存。 | 76 77 78**示例:** 79 ``` 80 let nativeHeapFreeSize = hidebug.getNativeHeapFreeSize(); 81 ``` 82 83 84## hidebug.getPss 85 86getPss(): bigint 87 88获取应用进程PSS内存大小。 89 90**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug 91 92 93**返回值:** 94| 类型 | 说明 | 95| ------ | ------------------------- | 96| bigint | 返回应用进程PSS内存大小。 | 97 98 99**示例:** 100 ``` 101 let pss = hidebug.getPss(); 102 ``` 103 104 105## hidebug.getSharedDirty 106 107getSharedDirty(): bigint 108 109获取进程的共享脏内存大小。 110 111**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug 112 113 114**返回值:** 115| 类型 | 说明 | 116| ------ | -------------------------- | 117| bigint | 返回进程的共享脏内存大小。 | 118 119 120**示例:** 121 ``` 122 let sharedDirty = hidebug.getSharedDirty(); 123 ``` 124 125 126## hidebug.startProfiling 127 128startProfiling(filename : string) : void 129 130启动虚拟机Profiling方法跟踪,`startProfiling()`方法的调用需要与`stopProfiling()`方法的调用一一对应,先开启后关闭,严禁使用`start->start->stop`,`start->stop->stop`,`start->start->stop->stop`等顺序的调用方式。 131 132**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug 133 134**参数:** 135 136| 参数名 | 类型 | 必填 | 说明 | 137| -------- | ------ | ---- | ------------------------------------------------------------ | 138| filename | string | 是 | 用户自定义的profiling文件名,根据传入的`filename`,将在应用的`files`目录生成`filename.json`文件。 | 139 140**示例:** 141 142```js 143hidebug.startProfiling("cpuprofiler-20220216"); 144// code block 145// ... 146// code block 147hidebug.stopProfiling(); 148``` 149 150 151 152## hidebug.stopProfiling 153 154stopProfiling() : void 155 156停止虚拟机Profiling方法跟踪,`stopProfiling()`方法的调用需要与`startProfiling()`方法的调用一一对应,先开启后关闭,严禁使用`start->start->stop`,`start->stop->stop`,`start->start->stop->stop`等顺序的调用方式。 157 158**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug 159 160**示例:** 161 162```js 163hidebug.startProfiling("cpuprofiler-20220216"); 164// code block 165// ... 166// code block 167hidebug.stopProfiling(); 168``` 169 170## hidebug.dumpHeapData 171 172dumpHeapData(filename : string) : void 173 174虚拟机堆导出。 175 176**系统能力:** SystemCapability.HiviewDFX.HiProfiler.HiDebug 177 178**参数:** 179 180| 参数名 | 类型 | 必填 | 说明 | 181| -------- | ------ | ---- | ------------------------------------------------------------ | 182| filename | string | 是 | 用户自定义的虚拟机堆文件名,根据传入的`filename`,将在应用的`files`目录生成`filename.heapsnapshot`文件。 | 183 184**示例:** 185 186```js 187hidebug.dumpHeapData("heap-20220216"); 188```