Debug调试
说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
使用hidebug,可以获取应用内存的使用情况,包括应用进程的静态堆内存(native heap)信息、应用进程内存占用PSS(Proportional Set Size)信息等;可以完成虚拟机内存切片导出,虚拟机CPU Profiling采集等操作。
导入模块
import hidebug from '@ohos.hidebug';
hidebug.getNativeHeapSize
getNativeHeapSize(): bigint
获取native heap内存的总大小。
本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回native heap内存总大小。 |
示例:
let nativeHeapSize = hidebug.getNativeHeapSize();
hidebug.getNativeHeapAllocatedSize
getNativeHeapAllocatedSize(): bigint
获取native heap内存的已分配内存大小。
本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回native heap内存的已分配内存。 |
示例:
let nativeHeapAllocatedSize = hidebug.getNativeHeapAllocatedSize();
hidebug.getNativeHeapFreeSize
getNativeHeapFreeSize(): bigint
获取native heap内存的空闲内存大小。
本接口在OpenHarmony 3.1 Release版本仅为接口定义,暂不支持使用。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回native heap内存的空闲内存。 |
示例:
let nativeHeapFreeSize = hidebug.getNativeHeapFreeSize();
hidebug.getPss
getPss(): bigint
获取应用进程PSS内存大小。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回应用进程PSS内存大小。 |
示例:
let pss = hidebug.getPss();
hidebug.getSharedDirty
getSharedDirty(): bigint
获取进程的共享脏内存大小。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回进程的共享脏内存大小。 |
示例:
let sharedDirty = hidebug.getSharedDirty();
hidebug.getPrivateDirty9+
getPrivateDirty(): bigint
获取进程的私有脏内存大小。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
bigint | 返回进程的私有脏内存大小。 |
示例:
let privateDirty = hidebug.getPrivateDirty();
hidebug.getCpuUsage9+
getCpuUsage(): number
获取进程的cpu占用率。
如占用率为50%,则返回0.5。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
返回值:
类型 | 说明 |
---|---|
number | 获取进程的cpu占用率。 |
示例:
let cpuUsage = hidebug.getCpuUsage();
hidebug.startProfiling
startProfiling(filename : string) : void
启动虚拟机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
stopProfiling() : void
停止虚拟机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
dumpHeapData(filename : string) : void
虚拟机堆导出。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
filename | string | 是 | 用户自定义的虚拟机堆文件名,根据传入的filename ,将在应用的files 目录生成filename.heapsnapshot 文件。 |
示例:
hidebug.dumpHeapData("heap-20220216");
hidebug.getServiceDump9+
getServiceDump(serviceid : number) : string
获取系统服务信息。
此接口为系统接口,三方应用不可用。
系统能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
serviceid | number | 是 | 基于该用户输入的service id获取系统服务信息。 |
返回值:
类型 | 说明 |
---|---|
string | 返回dump的service信息文件的绝对路径。 |
示例:
let serviceId = 10;
let pathName = hidebug.getServiceDump(serviceId);