• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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```