HiDebug对外提供系统调试相关功能的接口,包括应用进程的静态堆内存(native heap)信息、应用进程内存占用PSS(Proportional Set Size)信息的获取等,也可完成虚拟机内存切片导出,虚拟机CPU Profiling采集等操作。
接口说明
接口名 | 描述 |
---|---|
hidebug.getNativeHeapSize | 获取内存分配器统计的进程持有的堆内存大小(含分配器元数据)。 |
hidebug.getNativeHeapAllocatedSize | 获取内存分配器统计的进程业务分配的堆内存大小。 |
hidebug.getNativeHeapFreeSize | 获取内存分配器持有的缓存内存大小。 |
hidebug.getPss | 获取应用进程实际使用的物理内存大小。 |
hidebug.getVss | 获取应用进程虚拟耗用内存大小。 |
hidebug.getSharedDirty | 获取进程的共享脏内存大小。 |
hidebug.getPrivateDirty | 获取进程的私有脏内存大小。 |
hidebug.getCpuUsage | 获取进程的CPU使用率。 |
hidebug.dumpJsHeapData | 虚拟机堆导出。 |
hidebug.startJsCpuProfiling | 启动虚拟机Profiling方法跟踪。 |
hidebug.stopJsCpuProfiling | 停止虚拟机Profiling方法跟踪。 |
hidebug.getAppVMMemoryInfo | 获取VM内存相关信息。 |
hidebug.getAppThreadCpuUsage | 获取应用线程CPU使用情况。 |
hidebug.startAppTraceCapture | 启动应用trace采集。 |
hidebug.stopAppTraceCapture | 停止应用trace采集。 |
hidebug.getAppMemoryLimit | 获取应用程序进程内存限制。 |
hidebug.getSystemCpuUsage | 获取系统的CPU资源占用情况。 |
hidebug.setAppResourceLimit | 设置应用的fd数量、线程数量、js内存或者native内存资源限制。 |
hidebug.getAppNativeMemInfo | 获取应用进程内存信息。 |
hidebug.getSystemMemInfo | 获取系统内存信息。 |
hidebug.getVMRuntimeStats | 获取系统gc全部统计信息。 |
hidebug.getVMRuntimeStat | 根据参数获取指定的系统gc统计信息。 |
开发示例
下文将展示如何在应用内增加一个按钮,并单击该按钮以调用hidebug接口。
-
新建一个工程,选择“Empty Ability”。
-
工程配置界面中,Model选择“Stage”。
-
在Project窗口单击entry > src > main > ets > pages,打开工程中的Index.ets文件,
新增一个方法调用hidebug接口,本文以hidebug.getSystemCpuUsage()为例。
import { hidebug, hilog } from '@kit.PerformanceAnalysisKit'; function testHidebug(event?: ClickEvent) { hilog.info(0x0000, "testTag", `getCurrentCpuUsage ${hidebug.getSystemCpuUsage()}`); }
给文本Text组件添加一个点击事件,示例代码如下:
@Entry @Component struct Index { @State message: string = 'Hello World' build() { Row() { Column() { Text(this.message) .fontSize(50) .fontWeight(FontWeight.Bold) .onClick(testHidebug);//添加点击事件 } .width('100%') } .height('100%') } }
-
在真机上运行该工程,单击应用/服务界面上的“Hello World”文本。
-
在DevEco Studio的底部,切换到“Log”窗口,设置日志的过滤条件为“testTag”。
此时窗口将显示通过hidebug.getSystemCpuUsage()接口获取的CPU使用率的相关日志。
06-25 19:50:27.485 24645-24645/com.example.myapplication I A00000/testTag: getCurrentCpuUsage 0.10164512338425381