DFX-性能打点(HiTrace)指导

DFX-性能打点(HiTrace)指导

HarmonyOS
2024-06-13 11:13:39
浏览
收藏 0
回答 1
待解决
回答 1
按赞同
/
按时间
zxjiu

概述

HiTrace主要是对于跨设备/跨进程/跨线程的业务流程,通过相同的traceid在整个业务流程中传递,将流程处理过程中的调用关系、各种输出信息关联和展现出来,帮助使用者分析、定位问题和系统调优。

详见参考文档:性能打点

接口说明

hiTraceMeter.startTrace

startTrace(name: string, taskId: number): void

标记一个预追踪耗时任务的开始,expectedTime是可选参数,标识该任务的期望耗时。

hiTraceMeter.finishTrace

finishTrace(name: string, taskId: number): void

标记一个预追踪耗时任务的结束。



参数名




类型




必填




说明


name

string

要追踪的任务名称

taskId

number

任务id

hiTraceMeter.traceByValue

traceByValue(name: string, count: number): void

用来标记一个预追踪的数值变量,该变量的数值会不断变化。



参数名




类型




必填




说明


name

string

要追踪的数值变量名称

count

number

变量的值

开发实例

 hiTraceMeter() { 
     hiTraceMeter.startTrace("business", 1); 
    hiTraceMeter.startTrace("business", 1); 
    //追踪并行执行的同名任务 
    hiTraceMeter.startTrace("business", 1); 
    //业务流程 
    console.log(`business running`); 
    hiTraceMeter.startTrace("business", 2);  //第二个追踪的任务开始,同时第一个追踪的同名任务还没结束,出现了并行执行,对应接口的taskId需要不同。 
    //业务流程 
    console.log(`business running`); 
    hiTraceMeter.finishTrace("business", 1); 
    //业务流程 
    console.log(`business running`); 
    hiTraceMeter.finishTrace("business", 2); 
  
    //追踪串行执行的同名任务 
    hiTraceMeter.startTrace("business", 1); 
    //业务流程 
    console.log(`business running`); 
    hiTraceMeter.finishTrace("business", 1);  //第一个追踪的任务结束 
    //业务流程 
    console.log(`business running`); 
    hiTraceMeter.startTrace("business", 1);   //第二个追踪的同名任务开始,同名的待追踪任务串行执行。 
    //业务流程 
    console.log(`business running`); 
  
    let traceCount = 3; 
    hiTraceMeter.traceByValue("myTestCount", traceCount); 
    traceCount = 4; 
    hiTraceMeter.traceByValue("myTestCount", traceCount); 
    hiTraceMeter.finishTrace("business", 1); 
  }

抓取hiTrace

  • 方法一:

1.在抓取hiTrace的时候,可以使用bytrace -l命令来检查当前系统中存在的trace category,下面是当前设备支持的列表:

2.通过这段程序来抓取trace(保存myhap_demo.ftrace文件到当前目录)

hdc_std shell bytrace -t 10 app > .\myhap_demo.ftrace

3.抓取之后还要使用trace转换工具进行转换,才能在perfetto IDE里进行查看,命令行如下(注意配置python环境):

python hitrace_postproc.py -p myhap_demo.ftrace

之后会得到转换完毕的文件myhap_demo_o.ftrace

把myhap_demo_o.ftrace拖入到perfetto IDE中就可以进行查看,如下图:

推荐的PerfettoUI网址:https://ui.perfetto.dev/#!/

  • 方法二:

获取脚本地址: Z_disk\调试工具\bytrace

运行目录下的bat脚本即可抓取trace


分享
微博
QQ
微信
回复
2024-06-13 22:37:29
相关问题
DFX-Hilog日志打印指导
970浏览 • 1回复 待解决
应用性能问题定位和优化指导
2393浏览 • 1回复 待解决
DFX-crash定位定界工具
561浏览 • 1回复 待解决
DFX(Design For X)子系统是什么?
21894浏览 • 4回复 待解决
有谁知道常用AppFreeze使用指导
920浏览 • 1回复 待解决
Xcomponent、NativeImage开发指导
1107浏览 • 1回复 待解决
加解密问题的定位指导
253浏览 • 1回复 待解决
Charles工具-App开发抓包指导
882浏览 • 1回复 待解决
指导Hi3861平台的JS应用开发???
6264浏览 • 2回复 待解决
Grid组件性能问题有哪些?
339浏览 • 1回复 待解决
Refresh和pulltorefresh性能差异
452浏览 • 1回复 待解决
jsbind--二进制包导入指导
726浏览 • 1回复 待解决