Debug调试
本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
使用hidebug,可以获取应用内存的使用情况,包括应用进程的静态堆内存(native heap)信息、应用进程内存占用PSS(Proportional Set Size)信息等;可以完成虚拟机内存切片导出,虚拟机CPU Profiling采集等操作。
hidebug.getNativeHeapSize
getNativeHeapSize(): bigint
获取本应用堆内存的总大小。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回本应用堆内存总大小,单位为Byte。 |
示例:
- let nativeHeapSize = hidebug.getNativeHeapSize();
hidebug.getNativeHeapAllocatedSize
getNativeHeapAllocatedSize(): bigint
获取本应用堆内存的已分配内存大小。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回本应用堆内存的已分配内存,单位为Byte。 |
示例:
- let nativeHeapAllocatedSize = hidebug.getNativeHeapAllocatedSize();
hidebug.getNativeHeapFreeSize
getNativeHeapFreeSize(): bigint
获取本应用堆内存的空闲内存大小。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回本应用堆内存的空闲内存,单位为Byte。 |
示例:
- let nativeHeapFreeSize = hidebug.getNativeHeapFreeSize();
hidebug.getPss
getPss(): bigint
获取应用进程实际使用的物理内存大小。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回应用进程实际使用的物理内存大小,单位为kB。 |
示例:
- let pss = hidebug.getPss();
hidebug.getSharedDirty
getSharedDirty(): bigint
获取进程的共享脏内存大小。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回进程的共享脏内存大小,单位为kB。 |
示例:
- let sharedDirty = hidebug.getSharedDirty();
hidebug.getPrivateDirty9+
getPrivateDirty(): bigint
获取进程的私有脏内存大小。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回进程的私有脏内存大小,单位为kB。 |
示例:
- let privateDirty = hidebug.getPrivateDirty();
hidebug.getCpuUsage9+
getCpuUsage(): number
获取进程的CPU使用率。
如占用率为50%,则返回0.5。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
number | 获取进程的CPU使用率。 |
示例:
- let cpuUsage = hidebug.getCpuUsage();
hidebug.getServiceDump9+
getServiceDump(serviceid : number, fd : number, args : Array<string>) : void
获取系统服务信息。
需要权限: ohos.permission.DUMP
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
serviceid | number | 是 | 基于该用户输入的service id获取系统服务信息。 |
fd | number | 是 | 文件描述符,该接口会往该fd中写入数据。 |
args | Array<string> | 是 | 系统服务的Dump接口所对应的参数列表。 |
示例:
- import fileio from '@ohos.fileio'
- import hidebug from '@ohos.hidebug'
- import featureAbility from '@ohos.ability.featureAbility'
- let context = featureAbility.getContext();
- context.getFilesDir().then((data) => {
- var path = data + "/serviceInfo.txt"
- console.info("output path: " + path)
- let fd = fileio.openSync(path, 0o102, 0o666)
- var serviceId = 10
- var args = new Array("allInfo")
- try {
- hidebug.getServiceDump(serviceId, fd, args)
- } catch (error) {
- console.info(error.code)
- console.info(error.message)
- }
- fileio.closeSync(fd);
- })
hidebug.startJsCpuProfiling9+
startJsCpuProfiling(filename : string) : void
启动虚拟机Profiling方法跟踪,startJsCpuProfiling()方法的调用需要与stopJsCpuProfiling()方法的调用一一对应,先开启后关闭,严禁使用start->start->stop,start->stop->stop,start->start->stop->stop等类似的顺序调用。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filename | string | 是 | 用户自定义的profiling文件名,根据传入的filename,将在应用的files目录生成filename.json文件。 |
示例:
- import hidebug from '@ohos.hidebug'
- try {
- hidebug.startJsCpuProfiling("cpu_profiling");
- // ...
- hidebug.stopJsCpuProfiling();
- } catch (error) {
- console.info(error.code)
- console.info(error.message)
- }
hidebug.stopJsCpuProfiling9+
stopJsCpuProfiling() : void
停止虚拟机Profiling方法跟踪,startJsCpuProfiling()方法的调用需要与stopJsCpuProfiling()方法的调用一一对应,先开启后关闭,严禁使用start->start->stop,start->stop->stop,start->start->stop->stop等类似的顺序调用。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filename | string | 是 | 用户自定义的profiling文件名,根据传入的filename,将在应用的files目录生成filename.json文件。 |
示例:
- import hidebug from '@ohos.hidebug'
- try {
- hidebug.startJsCpuProfiling("cpu_profiling");
- // ...
- hidebug.stopJsCpuProfiling();
- } catch (error) {
- console.info(error.code)
- console.info(error.message)
- }
hidebug.dumpJsHeapData9+
dumpJsHeapData(filename : string) : void
虚拟机堆导出。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filename | string | 是 | 用户自定义的虚拟机堆文件名,根据传入的filename,将在应用的files目录生成filename.heapsnapshot文件。 |
示例:
- import hidebug from '@ohos.hidebug'
- try {
- hidebug.dumpJsHeapData("heapData");
- } catch (error) {
- console.info(error.code)
- console.info(error.message)
- }
hidebug.startProfiling(deprecated)
startProfiling(filename : string) : void
从 API version 9 开始废弃,建议使用hidebug.startJsCpuProfiling替代。
启动虚拟机Profiling方法跟踪,startProfiling()方法的调用需要与stopProfiling()方法的调用一一对应,先开启后关闭,严禁使用start->start->stop,start->stop->stop,start->start->stop->stop等类似的顺序调用。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filename | string | 是 | 用户自定义的profiling文件名,根据传入的filename,将在应用的files目录生成filename.json文件。 |
示例:
- hidebug.startProfiling("cpuprofiler-20220216");
- // code block
- // ...
- // code block
- hidebug.stopProfiling();
hidebug.stopProfiling(deprecated)
stopProfiling() : void
从 API version 9 开始废弃,建议使用hidebug.stopJsCpuProfiling替代。
停止虚拟机Profiling方法跟踪,stopProfiling()方法的调用需要与startProfiling()方法的调用一一对应,先开启后关闭,严禁使用start->start->stop,start->stop->stop,start->start->stop->stop等类似的顺序调用。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
示例:
- hidebug.startProfiling("cpuprofiler-20220216");
- // code block
- // ...
- // code block
- hidebug.stopProfiling();
hidebug.dumpHeapData(deprecated)
dumpHeapData(filename : string) : void
从 API version 9 开始废弃,建议使用hidebug.dumpJsHeapData替代。
虚拟机堆导出。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filename | string | 是 | 用户自定义的虚拟机堆文件名,根据传入的filename,将在应用的files目录生成filename.heapsnapshot文件。 |
示例:
- hidebug.dumpHeapData("heap-20220216");
更多建议: