Debug調(diào)試

2024-01-23 17:17 更新
說明

本模塊首批接口從API version 8開始支持。后續(xù)版本的新增接口,采用上角標(biāo)單獨(dú)標(biāo)記接口的起始版本。

使用hidebug,可以獲取應(yīng)用內(nèi)存的使用情況,包括應(yīng)用進(jìn)程的靜態(tài)堆內(nèi)存(native heap)信息、應(yīng)用進(jìn)程內(nèi)存占用PSS(Proportional Set Size)信息等;可以完成虛擬機(jī)內(nèi)存切片導(dǎo)出,虛擬機(jī)CPU Profiling采集等操作。

導(dǎo)入模塊

  1. import hidebug from '@ohos.hidebug';

hidebug.getNativeHeapSize

getNativeHeapSize(): bigint

獲取本應(yīng)用堆內(nèi)存的總大小。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

返回值:

類型

說明

bigint

返回本應(yīng)用堆內(nèi)存總大小,單位為Byte。

示例:

  1. let nativeHeapSize = hidebug.getNativeHeapSize();

hidebug.getNativeHeapAllocatedSize

getNativeHeapAllocatedSize(): bigint

獲取本應(yīng)用堆內(nèi)存的已分配內(nèi)存大小。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

返回值:

類型

說明

bigint

返回本應(yīng)用堆內(nèi)存的已分配內(nèi)存,單位為Byte。

示例:

  1. let nativeHeapAllocatedSize = hidebug.getNativeHeapAllocatedSize();

hidebug.getNativeHeapFreeSize

getNativeHeapFreeSize(): bigint

獲取本應(yīng)用堆內(nèi)存的空閑內(nèi)存大小。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

返回值:

類型

說明

bigint

返回本應(yīng)用堆內(nèi)存的空閑內(nèi)存,單位為Byte。

示例:

  1. let nativeHeapFreeSize = hidebug.getNativeHeapFreeSize();

hidebug.getPss

getPss(): bigint

獲取應(yīng)用進(jìn)程實(shí)際使用的物理內(nèi)存大小。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

返回值:

類型

說明

bigint

返回應(yīng)用進(jìn)程實(shí)際使用的物理內(nèi)存大小,單位為kB。

示例:

  1. let pss = hidebug.getPss();

hidebug.getSharedDirty

getSharedDirty(): bigint

獲取進(jìn)程的共享臟內(nèi)存大小。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

返回值:

類型

說明

bigint

返回進(jìn)程的共享臟內(nèi)存大小,單位為kB。

示例:

  1. let sharedDirty = hidebug.getSharedDirty();

hidebug.getPrivateDirty9+

getPrivateDirty(): bigint

獲取進(jìn)程的私有臟內(nèi)存大小。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

返回值:

類型

說明

bigint

返回進(jìn)程的私有臟內(nèi)存大小,單位為kB。

示例:

  1. let privateDirty = hidebug.getPrivateDirty();

hidebug.getCpuUsage9+

getCpuUsage(): number

獲取進(jìn)程的CPU使用率。

如占用率為50%,則返回0.5。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

返回值:

類型

說明

number

獲取進(jìn)程的CPU使用率。

示例:

  1. let cpuUsage = hidebug.getCpuUsage();

hidebug.getServiceDump9+

getServiceDump(serviceid : number, fd : number, args : Array<string>) : void

獲取系統(tǒng)服務(wù)信息。

需要權(quán)限: ohos.permission.DUMP

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

參數(shù):

參數(shù)名

類型

必填

說明

serviceid

number

基于該用戶輸入的service id獲取系統(tǒng)服務(wù)信息。

fd

number

文件描述符,該接口會往該fd中寫入數(shù)據(jù)。

args

Array<string>

系統(tǒng)服務(wù)的Dump接口所對應(yīng)的參數(shù)列表。

示例:

  1. import fileio from '@ohos.fileio'
  2. import hidebug from '@ohos.hidebug'
  3. import featureAbility from '@ohos.ability.featureAbility'
  4. let context = featureAbility.getContext();
  5. context.getFilesDir().then((data) => {
  6. var path = data + "/serviceInfo.txt"
  7. console.info("output path: " + path)
  8. let fd = fileio.openSync(path, 0o102, 0o666)
  9. var serviceId = 10
  10. var args = new Array("allInfo")
  11. try {
  12. hidebug.getServiceDump(serviceId, fd, args)
  13. } catch (error) {
  14. console.info(error.code)
  15. console.info(error.message)
  16. }
  17. fileio.closeSync(fd);
  18. })

hidebug.startJsCpuProfiling9+

startJsCpuProfiling(filename : string) : void

啟動虛擬機(jī)Profiling方法跟蹤,startJsCpuProfiling()方法的調(diào)用需要與stopJsCpuProfiling()方法的調(diào)用一一對應(yīng),先開啟后關(guān)閉,嚴(yán)禁使用start->start->stop,start->stop->stop,start->start->stop->stop等類似的順序調(diào)用。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

參數(shù):

參數(shù)名

類型

必填

說明

filename

string

用戶自定義的profiling文件名,根據(jù)傳入的filename,將在應(yīng)用的files目錄生成filename.json文件。

示例:

  1. import hidebug from '@ohos.hidebug'
  2. try {
  3. hidebug.startJsCpuProfiling("cpu_profiling");
  4. // ...
  5. hidebug.stopJsCpuProfiling();
  6. } catch (error) {
  7. console.info(error.code)
  8. console.info(error.message)
  9. }

hidebug.stopJsCpuProfiling9+

stopJsCpuProfiling() : void

停止虛擬機(jī)Profiling方法跟蹤,startJsCpuProfiling()方法的調(diào)用需要與stopJsCpuProfiling()方法的調(diào)用一一對應(yīng),先開啟后關(guān)閉,嚴(yán)禁使用start->start->stop,start->stop->stop,start->start->stop->stop等類似的順序調(diào)用。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

參數(shù):

參數(shù)名

類型

必填

說明

filename

string

用戶自定義的profiling文件名,根據(jù)傳入的filename,將在應(yīng)用的files目錄生成filename.json文件。

示例:

  1. import hidebug from '@ohos.hidebug'
  2. try {
  3. hidebug.startJsCpuProfiling("cpu_profiling");
  4. // ...
  5. hidebug.stopJsCpuProfiling();
  6. } catch (error) {
  7. console.info(error.code)
  8. console.info(error.message)
  9. }

hidebug.dumpJsHeapData9+

dumpJsHeapData(filename : string) : void

虛擬機(jī)堆導(dǎo)出。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

參數(shù):

參數(shù)名

類型

必填

說明

filename

string

用戶自定義的虛擬機(jī)堆文件名,根據(jù)傳入的filename,將在應(yīng)用的files目錄生成filename.heapsnapshot文件。

示例:

  1. import hidebug from '@ohos.hidebug'
  2. try {
  3. hidebug.dumpJsHeapData("heapData");
  4. } catch (error) {
  5. console.info(error.code)
  6. console.info(error.message)
  7. }

hidebug.startProfiling(deprecated)

startProfiling(filename : string) : void

說明

從 API version 9 開始廢棄,建議使用hidebug.startJsCpuProfiling替代。

啟動虛擬機(jī)Profiling方法跟蹤,startProfiling()方法的調(diào)用需要與stopProfiling()方法的調(diào)用一一對應(yīng),先開啟后關(guān)閉,嚴(yán)禁使用start->start->stop,start->stop->stop,start->start->stop->stop等類似的順序調(diào)用。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

參數(shù):

參數(shù)名

類型

必填

說明

filename

string

用戶自定義的profiling文件名,根據(jù)傳入的filename,將在應(yīng)用的files目錄生成filename.json文件。

示例:

  1. hidebug.startProfiling("cpuprofiler-20220216");
  2. // code block
  3. // ...
  4. // code block
  5. hidebug.stopProfiling();

hidebug.stopProfiling(deprecated)

stopProfiling() : void

說明

從 API version 9 開始廢棄,建議使用hidebug.stopJsCpuProfiling替代。

停止虛擬機(jī)Profiling方法跟蹤,stopProfiling()方法的調(diào)用需要與startProfiling()方法的調(diào)用一一對應(yīng),先開啟后關(guān)閉,嚴(yán)禁使用start->start->stop,start->stop->stop,start->start->stop->stop等類似的順序調(diào)用。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

示例:

  1. hidebug.startProfiling("cpuprofiler-20220216");
  2. // code block
  3. // ...
  4. // code block
  5. hidebug.stopProfiling();

hidebug.dumpHeapData(deprecated)

dumpHeapData(filename : string) : void

說明

從 API version 9 開始廢棄,建議使用hidebug.dumpJsHeapData替代。

虛擬機(jī)堆導(dǎo)出。

系統(tǒng)能力: SystemCapability.HiviewDFX.HiProfiler.HiDebug

參數(shù):

參數(shù)名

類型

必填

說明

filename

string

用戶自定義的虛擬機(jī)堆文件名,根據(jù)傳入的filename,將在應(yīng)用的files目錄生成filename.heapsnapshot文件。

示例:

  1. hidebug.dumpHeapData("heap-20220216");
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號