HarmonyOS之HiTrace日志跟踪定位分析
一、概述
- 在 HarmonyOS 跨设备分布式应用的问题定位过程中,由于跨设备之间的调用关系复杂,导致问题定位困难。DevEco Studio 提供了 HiTrace 日志跟踪的能力,可以分析和梳理跨设备分布式应用之间的调用关系,通过分析调用链,方便开发者定位调用异常、性能瓶颈等问题。
- 开发者可以通过 HarmonyOS Interface Definition Language(简称 HarmonyOS IDL)实现不同设备之间的跨进程通信(IPC,Inter-Process Communication),即开发者可以在一个设备上访问另一个设备的进程或者调用另一个设备的方法,实现多设备的协同能力。
- 因此,DevEco Studio 基于 HarmonyOS IDL 实现的跨设备的分布式场景,提供了跨设备的 HarmonyOS 分布式应用的调试功能,方便开发者调测分布式应用。
- 前提条件:
- 工程中至少包含2个及以上的模块,且模块代码是基于 HarmonyOS IDL 的 Java 语言实现。
- 调测的多个设备成功组网,包括连接到同一个 WLAN 网络、登录同一个华为帐号和同时打开蓝牙开关。
- 已连接真机设备,或已启动分布式模拟器。
二、跨设备分布式应用调试
- 在涉及跨设备调用的代码行设置断点;
- 选择已创建的跨设备调试配置(Super App)选项,单击如下按钮启动调试:
- 在弹出的设备选择窗口,指定调试设备对应的模块名称:
- 启动调试后,DevEco Studio 将按照勾选的多个设备,分别启动多个调试会话窗口,命名为:“Super App-模块名”,如 Super App-entry:
- 在代码执行到断点处(跨设备调用的代码处),点击 Step Into,快捷键为 F7(Mac 为 F7),则会自动跳转到被调用代码接口方法处;
- 例如,在上图中的调试界面为例,在 Phone 中调用 TV 的音乐播放能力,单击 Step Into,调试窗口将从“Super App-entry”跳转到“Super App-entrytv”窗口,同时,代码也会跳转到对应的接口方法处,无需开发者手动设置断点。
三、HiTrace日志跟踪定位分析
- 在需要跟踪调用链的 RPC 调用处,前后分别添加 Hitrace 类接口,用于采集 Hitrace 日志。对应的示例代码如下所示:
HiTraceId traceId = HiTrace.begin("MyServiceName", HiTrace.HITRACE_FLAG_INCLUDE_ASYNC | HiTrace.HITRACE_FLAG_TP_INFO);......HiTrace.end(traceId);
- 在设备上运行应用,跨设备运行分布式应用的方法请参考运行/调试分布式应用。
- 在底部工具栏点击 Profiler,打开 Hitrace 工具:
- 在 Hitrace 窗口,点击 Record 按钮,开始收集 Hitrace 日志信息,然后在设备上操作分布式应用。
- 点击停止按钮,停止收集 Hitrace 日志信息。日志采集完成后,可以看到如下的时序视图(上半部分)和调用链详情视图(下半部分)。
四、Hitrace 调用链分析
- Hitrace 日志采集完成后,会生成时序视图和调用链详情视图,可以利用时序图和调用链详细视图来进行故障定位定界和性能分析。
- 利用时序图+调用链视图中的 Call Tree 视图,可以分析分布式跨设备与跨进程的调用关系:
- 在时序图中,使用不同颜色矩形块区分不同的调用关系,在矩形块中,可以展示调用的开始时间、结束时间和处理时长,帮助开发者分析处理性能。
- 点击时序图中的矩形块,则会展示进程的调用方向,从而查看其是调用方或被调用方;同时在 Call Tree 视图中,也可以清晰的展示进程的调用关系(单设备跨进程调用、跨设备进程调用、调用时长等)。
- 利用时序图+调用链视图中的 Events 视图,可以进行分布式调用的故障定位定界、诊断和分析:
- 在时序图中,可以展示相关的异常事件,包括 Java Crash 异常、JS Crash 异常、C/C++ Crash 异常、跨设备 FA 调用异常、ANR 故障等。
- 点击时序图中的异常事件,则会在 Events 视图中展示具体的异常细节,并会自动抓取异常前 30s 的详细日志信息。
HarmonyOS之HiTrace日志跟踪定位分析相关推荐
- 软件测试如何定位分析bug?
你好,我是小牛. 软件测试日常工作中,每天可能都会遇到不同的问题和bug,有些刚入行的测试喜欢不加分析就直接甩给开发去解决.开发比较闲还好,如果手头工作比较多,就容易烦.甚至有可能是后端的问题,但是你 ...
- 【linux性能优化】定位分析狂打日志的问题
一.文件系统和磁盘I/O 回顾一下文件系统和磁盘I/O的原理 1.1 文件系统 对存储设备上的文件进行组织管理的一种机制 为了支持各类不同的文件系统,Linux在各种文件系统上抽象了一层虚拟文件系统V ...
- 【Android 逆向】Android 逆向方法 ( 静态逆向解析 | 函数调用分析 | 动态运行跟踪 | 运行日志分析 | 文件格式解析 | 敏感信息分析 | 网络信息监控 | 环境伪装模拟 )
文章目录 一.Android 逆向方法 1.静态逆向解析 2.函数调用分析 3.动态运行跟踪 4.运行日志分析 5.文件格式解析 6.敏感信息分析 7.网络信息监控 8.软件动态调试 9.环境伪装模拟 ...
- Android中对Log日志文件的分析
Android中对Log日志文件的分析 如何分析和研究Log文件 ,如何看日志信息 Log 在android中的地位非常重要,要是作为一个android程序员不能过分析log这关,算是android没 ...
- android 如何定位anr,ANR产生的原因及其定位分析
记录ANR产生的原因及其定位分析 ANR概述 ANR是Android中一个独有的概念,全称是Application Not Responding(应用程序无响应). ANR的直观体验是用户在操作APP ...
- Spring Cloud详解(九)Sleuth日志跟踪
1. Sleuth简介 Spring Cloud Sleuth[sluːθ]是Spring Cloud提供的分布式系统服务链追踪组件,它大量借用了Google的Dapper,Twitter的Zipki ...
- CPU消耗,跟踪定位理论与实践
CPU消耗,跟踪定位理论与实践 一.性能指标之资源指标定位方案 1.打tprof报告方法 抓取perfpmr文件 60秒. perfpmr.sh 60 从结果文件中取出tprof.sum 或直接抓取t ...
- Android10.0 日志系统分析(三)-logd、logcat读写日志源码分析-[Android取经之路]
摘要:本节主要来讲解Android10.0 logd.logcat读写日志源码内容 阅读本文大约需要花费20分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Andro ...
- 支付宝客户端架构分析:自动化日志收集及分析
小蚂蚁说: <支付宝客户端架构解析>系列将从支付宝客户端的架构设计方案入手,细分拆解客户端在"容器化框架设计"."网络优化"."性能启动优 ...
最新文章
- 多线程:为什么不能override start方法
- BZOJ-1008 越狱
- Ubuntu服务器安装snmpd(用于监控宝)
- mysql kvdb_从MYSQL到KVDB
- XNA中的Render State管理
- 高速缓冲存储器(Cache)
- IntelliJ IDEA连接mysql
- win7映射网络驱动器消失了_win7系统映射网络驱动器出现问题的解决方法
- 计算机审计风险未来发展,浅谈计算机审计风险的研究
- Gazebo踩坑(一)[Err] [REST.cc:205] Error in REST request
- 游吟诗人之中二病犯了
- (1)地图的理解及地图的类型介绍
- Element ui 组件库 使用技巧。
- SPSS多元线性回归残差分析的基本方法
- 500错误及服务器内部错误
- [QT_041]Qt学习之通用对话框:QErrorMessage、QFileDialog、QProgressDialog
- 从vue文件中抽取出子组件的流程及过程中踩过的坑
- 少儿Python编程2-计算机和信息处理
- 清华附小校长窦桂梅给孩子们列的书单,值得一看!
- 1-氨丙基-3-甲基咪唑溴盐离子液体修饰碳量子点(L-CQDs)负载TiO2纳米颗粒(试剂)
热门文章
- SaaS全球普及面临三大门槛
- acwing 7 混合背包
- (转)函数作用域,匿名函数,函数式编程,面向过程,面向对象
- ESP8266串口模块的基本使用【转】
- V4L2框架分析学习二
- pyqt5 实现右键自定义_《快速掌握PyQt5》第十七章 事件处理
- 计算机考研深圳大学和广东工业大学,报考人数过万!这些院校已成为考研“重灾区”...
- vue点击按钮之后置成不可用_2020.03vue常见问题总结
- 940mx黑苹果驱动_专业黑苹果系统安装 win macos双系统10.13/14/15
- linux怎么知道ping命令,教程方法;通过ping命令查看服务器类型(linux还是windows系列)电脑技巧-琪琪词资源网...