HiDebug

NOTE
The initial APIs of this module are supported since API version 8. Newly added APIs will be marked with a superscript to indicate their earliest API version.

You can run the hidebug command to obtain the memory usage of an application, including the static heap memory (native heap) and proportional set size (PSS) occupied by the application process. You can also export VM memory slices and collect VM CPU profiling data.

Modules to Import

import hidebug from '@ohos.hidebug';

hidebug.getNativeHeapSize

getNativeHeapSize(): bigint

Obtains the total size of the native heap memory.

This API is defined but not implemented in OpenHarmony 3.1 Release.

System capability: SystemCapability.HiviewDFX.HiProfiler.HiDebug

Return value

Type Description
bigint Total size of the native heap memory.

Example

let nativeHeapSize = hidebug.getNativeHeapSize();

hidebug.getNativeHeapAllocatedSize

getNativeHeapAllocatedSize(): bigint

Obtains the size of the allocated native heap memory.

This API is defined but not implemented in OpenHarmony 3.1 Release.

System capability: SystemCapability.HiviewDFX.HiProfiler.HiDebug

Return value

Type Description
bigint Size of the allocated native heap memory.

Example

let nativeHeapAllocatedSize = hidebug.getNativeHeapAllocatedSize();

hidebug.getNativeHeapFreeSize

getNativeHeapFreeSize(): bigint

Obtains the size of the free native heap memory.

This API is defined but not implemented in OpenHarmony 3.1 Release.

System capability: SystemCapability.HiviewDFX.HiProfiler.HiDebug

Return value

Type Description
bigint Size of the free native heap memory.

Example

let nativeHeapFreeSize = hidebug.getNativeHeapFreeSize();

hidebug.getPss

getPss(): bigint

Obtains the PSS of this process.

System capability: SystemCapability.HiviewDFX.HiProfiler.HiDebug

Return value

Type Description
bigint PSS of the process.

Example

let pss = hidebug.getPss();

hidebug.getSharedDirty

getSharedDirty(): bigint

Obtains the size of the shared dirty memory of this process.

System capability: SystemCapability.HiviewDFX.HiProfiler.HiDebug

Return value

Type Description
bigint Size of the shared dirty memory of the process.

Example

let sharedDirty = hidebug.getSharedDirty();

hidebug.getPrivateDirty9+

getPrivateDirty(): bigint

Obtains the size of the private dirty memory of this process.

System capability: SystemCapability.HiviewDFX.HiProfiler.HiDebug

Return value

Type Description
bigint Size of the private dirty memory of the process.

Example

let privateDirty = hidebug.getPrivateDirty();

hidebug.getCpuUsage9+

getCpuUsage(): number

Obtains the CPU usage of this process.

For example, if the CPU usage is 50%, 0.5 is returned.

System capability: SystemCapability.HiviewDFX.HiProfiler.HiDebug

Return value

Type Description
number CPU usage of the process.

Example

let cpuUsage = hidebug.getCpuUsage();

hidebug.startProfiling

startProfiling(filename : string) : void

Starts the profiling method. startProfiling() and stopProfiling() are called in pairs. startProfiling() always occurs before stopProfiling(); that is, calling the functions in the following sequences is prohibited: start->start->stop, start->stop->stop, and start->start->stop->stop.

System capability: SystemCapability.HiviewDFX.HiProfiler.HiDebug

Parameters

Name Type Mandatory Description
filename string Yes User-defined profile name. The filename.json file is generated in the files directory of the application based on the specified filename.

Example

hidebug.startProfiling("cpuprofiler-20220216");
// code block
// ...
// code block
hidebug.stopProfiling();

hidebug.stopProfiling

stopProfiling() : void

Stops the profiling method. startProfiling() and stopProfiling() are called in pairs. startProfiling() always occurs before stopProfiling(); that is, calling the functions in the following sequences is prohibited: start->start->stop, start->stop->stop, and start->start->stop->stop.

System capability: SystemCapability.HiviewDFX.HiProfiler.HiDebug

Example

hidebug.startProfiling("cpuprofiler-20220216");
// code block
// ...
// code block
hidebug.stopProfiling();

hidebug.dumpHeapData

dumpHeapData(filename : string) : void

Exports data from the specified heap file.

System capability: SystemCapability.HiviewDFX.HiProfiler.HiDebug

Parameters

Name Type Mandatory Description
filename string Yes User-defined heap file name. The filename.heapsnapshot file is generated in the files directory of the app based on the specified filename.

Example

hidebug.dumpHeapData("heap-20220216");

hidebug.getServiceDump9+

getServiceDump(serviceid : number) : string

Obtains information on the specified system service.

This is a system API and cannot be called by third-party applications.

System capability: SystemCapability.HiviewDFX.HiProfiler.HiDebug

Parameters

Name Type Mandatory Description
serviceid number Yes ID of the system service.

Return value

Type Description
string Absolute path of the file that contains the service information to dump.

Example

let serviceId = 10;
let pathName = hidebug.getServiceDump(serviceId);