0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

浅析HDC技术分论坛之分布式调试、调优能力解决方案

电子发烧友开源社区 来源:HarmonyOS开发者 作者:yangjianwei 2021-10-30 09:10 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:yangjianwei 华为高级工程师

HarmonyOS致力于提供1+8+N智慧全场景解决方案,打造设备流转、多端协同的分布式体验,实现一次开发、多端部署,让分布式应用的开发更加简单。

针对分布式应用的调试问题,DevEco Studio提供了分布式调试、调优能力解决方案,解决开发者面临的调试不连续、操作繁琐、功能和性能异常难定位等众多痛点问题。下面让我们先来一睹为快。

注:本文涉及的DevEco Studio分布式调试和调优的部分能力依赖于OS接口,计划将在HarmonyOS 3.0 Beta版本系统发布后才能支持。

一、分布式调试能力

DevEco Studio将为开发者提供分布式调试能力解决方案。通过在各个设备上的Debug Agent代理统一对接不同语言的调试器,调试代理负责将DevEco Studio中的调试插件中的调试命令转换为对不同调试器的请求,包括单步调试Step Into/Step Out/Step Over、跨模块步入,恢复程序等调试功能,Debugger插件负责将所有的调试信息以符合开发者需求的方式展示出来。

下面,我们将对DevEco Studio新增的分布式调试能力进行介绍。

1. 分布式跨设备跨语言调试

DevEco Studio将支持开发者选择多个设备进行调试,并能在多个设备、多种语言的调试间流畅切换。在跨设备、跨语言调用接口处,通过点击“Step Into”,能激活被调用设备的调试,中断在调用接口的响应处,并继续调试。同时,在IDE中还展示了多设备多语言调试的堆栈列表,实现断点统一管理、变量统一查看,使开发者定位问题更加高效便捷。

2. 分布式异常故障自动捕获

在分布式应用开发过程中,开发人员最依赖的就是日志,日志数量过大容易错过关键信息。HiTrace新增的自动异常捕获与辅助诊断的能力,可将应用运行异常自动上报到Events视图中,包括Java/C++/JS的崩溃异常。可通过异常事件中的堆栈信息,直接定位到源代码。同时可以查看普通业务事件信息,并关联出与此事件相关联的日志。这些功能大大减少分布式场景下收集、查看、分析日志的时间。

a0aa20f6-391c-11ec-82a8-dac502259ad0.png

图2 异常故障自动捕获

3. 跨设备状态流转、分布式堆栈可视化

当前开发者通常是通过查看调试的堆栈列表来定位跟踪代码问题,且分布式应用的堆栈列表往往是割裂不连续的,给开发者跟踪分布式调度的代码造成了阻碍。因此DevEco Studio将推出跨设备流转、分布式堆栈可视化功能。

(1)跨设备状态流转

Device Transfer视图以生动简洁的形式呈现了设备间的组网关系和连接状态,将设备以不同组网的分类形式进行分组,组内之间的设备可以显示它们的具体信息和原子化服务的动态流转关系。如图所示,每个球状图形表示一台设备,蓝色表示与IDE相连接,黄色表示该组网内未与IDE连接的设备,它们之间的箭头代表设备间原子化服务能力的调用,有助于开发者快速理解设备间的流转及互动关系。

a16d70a6-391c-11ec-82a8-dac502259ad0.png

图3 Device Transfer视图

(2)分布式堆栈可视化

分布式堆栈可视化功能打破陈规,将函数之间的调用关系以直观的可视化结构图形呈现出来,并保留了历史调用,克服了跨设备跨语言堆栈列表分割不连续的弊端,如图中,Call Stack view呈现了不同设备调试的模块,它们使用不同的颜色表示,点击图中的函数节点能自动定位到代码中的函数处。使开发者溯源代码更加轻松快捷。

a23a76c8-391c-11ec-82a8-dac502259ad0.png

图4 Call Stack视图

4. 时光调试:在JS上支持逆向调试

调试过程中,开发者错过查看关键性变量值,或者想调试函数已经走完的分支,此时往往需要重新启动调试,定位一个bug,往往需要调试很多次才能解决,费时费力。如何时光穿梭,回到执行需要调试的代码位置处?

DevEco Studio将提供时光调试功能,帮助你回退到关键代码位置,调试一次即可找出代码问题。时光调试支持在函数体内自由前进或回退,支持回退到上一行(Step Back)、回退到上一个断点(Run Back To Breakpoint),回退到鼠标位置(Run Back To Active Line),回退到上一个函数的最后一行(Step Back Into),回退到方法的调用处(Step Back Out)。一切变量值、一切调试状态都恢复至你未执行后续代码的状态,帮助你调试一次即可找出代码问题。

a2fb02a8-391c-11ec-82a8-dac502259ad0.jpg

图5 JS调试基础上增加逆向调试

二、分布式调优能力

分布式协同场景中跨设备业务性能瓶颈如何定位? JS应用的性能分析与内存分析如何来做? 性能采集过程中的数据是否合理?这些性能调优的问题,同样也困扰着很多的开发者。

DevEco Studio中也将新增HarmonyOS分布式性能Profiler的整体方案,在每个设备上会自动部署一个Profiler的代理,这个代理将通过与JS执行引擎,Java执行引擎,C++性能采集器等模块进行交互,获取代码执行过程中的性能数据,经过时钟同步,生成面向开发者的多种运行性能和内存分析视图。下面我们将对DevEco Studio中新增的多设备协同的性能跟踪、基于JS的应用的运行性能和对内存分析,针对性能数据自动辅助分析方进行阐述。

1. 多设备协同性能跟踪

DevEco Studio将提供跨设备协同的系统跟踪能力。主要包括:丢帧统计统计调试过程中丢帧情况,显示丢帧的序号以及丢帧率;分布式时延一次分布式业务运行过程中,同时完成跨设备的系统调用跟踪;提供跨设备调用栈的时延,不同设备上各系统调用使用不同颜色区分,各调用过程的耗时以及调用间的时延分别显示,并且高亮此次业务中高耗时的阶段,可以协助开发者快速定位耗时的流程。同时Timeline和调用栈视图可双向联动,提升调试效率。

a4161b82-391c-11ec-82a8-dac502259ad0.png

图7 系统跟踪能力

2. JS应用运行性能分析

JS作为HarmonyOS应用开发的主要语言。我们开发网页时对JS性能分析往往都是在Chrome开发工具中来完成,现在在DevEco Studio中,增加了对JS应用运行性能分析的支持。用户可通过Call Chart、Flame Chat、Top Down和Bottomup等视图查看方法间调用关系和调用消耗时长,便于识别长耗时方法。

a4ce088c-391c-11ec-82a8-dac502259ad0.png

图8 Call Chart和Flame Chat视图

3. JS应用堆内存分析

针对JavaScript内存无法回的收情况,DevEco Studio将新增对JS应用堆内存分析的支持。开发者可通过实时查看应用内存占用和变化趋势,快速发现可能存在的内存抖动和内存泄漏等问题。通过抓取/导入/导出JS堆内存快照,可进一步查看JS对象内存分配、调用、引用情况。开发者还可以比对分析多个内存快照,观察各对象的内存详细变化情况,便于快速定位可能造成内存性能瓶颈或者内存泄漏的对象。

4. 性能数据自动辅助分析

在性能分析过程中,一般的性能分析工具只给出了对性能数据的基础统计。针对启动和UI方面的体验问题,DevEco Studio自动对可能存在的问题给出提示与修改建议,开发者可根据建议进一步确认并进行优化。

用户从下拉列表中选取已安装的应用包名,IDE工具会自动启动选取的应用并抓取应用启动过程中的CPU占用率,IO读写量,使用内存等资源信息和该进程的函数调用信息。抓取结束后点击记录图标会自动分析获取信息,如果资源占用过多或函数调用时长偏长,会在性能分析报告页具体展示详细信息,同时部分常见问题会有优化建议的提示,助力开发者快速发现性能短板,提升应用性能体验。

a602cf62-391c-11ec-82a8-dac502259ad0.png

图10 性能数据自动辅助分析

DevEco Studio还为开发者提供应用功耗问题分析以及功耗调优的能力,主要包括:

整机耗电分解提供了整机的耗电情况,并对TOP耗电器件CPU、屏幕、GPU、Modem、WIFI、Audio、BT、GPS等器件进行了功耗分解,并记录了影响器件耗电的各器件的状态详情,同时支持系统维度的影响功耗状态的信息展示,方便开发者对整机的耗电情况有整体把握,并进行耗电分析。

应用分解将单个应用的耗电情况按照器件维度分解,后续可支持应用线程维度的拆解,方便识别到应用功耗问题时,快速的锁定问题线程。同时对应用CPU负载率实时展示,开发者可方便看到应用的CPU的负载情况。

至此,本期内容就结束了,随着时代的发展,分布式应用的发展已成趋势,那些曾让开发者抓狂的分布式调优及调试问题,DevEco Studio中新增的功能定能帮你解决。

编辑:jq

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    11216

    浏览量

    222949
  • gpu
    gpu
    +关注

    关注

    28

    文章

    5099

    浏览量

    134461
  • 分布式
    +关注

    关注

    1

    文章

    1062

    浏览量

    76418
  • HarmonyOS
    +关注

    关注

    80

    文章

    2146

    浏览量

    35577

原文标题:HDC技术分论坛:分布式调试、调优能力解决方案

文章出处:【微信号:HarmonyOS_Community,微信公众号:电子发烧友开源社区】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    逐点半导体分布式渲染解决方案助力真我GT8系列电竞独显芯片R1性能跃升

    MotionEngine™技术、高效AI游戏超技术、全时HDR技术,助力该芯片提升性能,为用户带来全新的视觉体验。 逐点半导体分布式渲染
    的头像 发表于 11-11 17:42 455次阅读

    QCon·上海站HarmonyOS开发者技术论坛:共探鸿蒙开发新机遇

    论坛(以下简称“论坛”)成功举办,论坛聚焦 AI 实践落地与技术赋能,邀请多位华为技术专家深度解读并分享 HarmonyOS AI辅助开发
    的头像 发表于 10-24 15:59 691次阅读
    QCon·上海站HarmonyOS开发者<b class='flag-5'>技术</b><b class='flag-5'>分</b><b class='flag-5'>论坛</b>:共探鸿蒙开发新机遇

    集群网络延迟优化指南:从诊断到的完整方案

    分布式系统架构中,集群网络延迟是影响整体性能的关键指标。本文 华纳云 将深入分析延迟产生根源,提供从硬件配置到协议的全方位解决方案,帮助运维人员实现毫秒级响应优化。 一、集群网络
    的头像 发表于 09-05 16:55 522次阅读

    HarmonyOSAI编程智慧

    DevEco Studio提供智慧能力,支持通过自然语言交互,分析并解释当前实例或项目中存在的性能问题,帮助开发者快速定位影响性能的具体原因。该功能从DevEco Studio 6.0.0
    发表于 09-01 15:15

    【节能学院】Acrel-1000DP分布式光伏监控系统在奉贤平高食品 4.4MW 分布式光伏中应用

    分布式光伏本地和远程通信方案,并研究分布式光伏采集模型的构建、多源数据融合估计、面向分布式光伏的有功、无功功率优化控制等关键技术,实现了对小
    的头像 发表于 08-23 08:04 3306次阅读
    【节能学院】Acrel-1000DP<b class='flag-5'>分布式</b>光伏监控系统在奉贤平高食品 4.4MW <b class='flag-5'>分布式</b>光伏中应用

    分布式光伏发电监测系统技术方案

    分布式光伏发电监测系统技术方案 柏峰【BF-GFQX】一、系统目标 :分布式光伏发电监测系统旨在通过智能化的监测手段,实现对分布式光伏电站的
    的头像 发表于 08-22 10:51 2888次阅读
    <b class='flag-5'>分布式</b>光伏发电监测系统<b class='flag-5'>技术</b><b class='flag-5'>方案</b>

    分布式IO选型指南:2025年分布式无线远程IO品牌及采集控制方案详解

    。2025年,分布式IO市场呈现出技术革新与品牌竞争加剧的态势。本文基于权威数据平台(如Statista、MarketsandMarkets、Grand View Research)的市场分析,全面解读分布式无线远程IO的选型要
    的头像 发表于 06-23 09:48 966次阅读

    安科瑞分布式光伏监控系统:高效、安全、智能的绿色能源解决方案

    ?并网标准如何满足?运维成本如何降低?安科瑞电气股份有限公司凭借多年行业经验,创新推出Acrel-1000DP分布式光伏监控系统,为光伏电站提供全生命周期解决方案。 一、分布式光伏发电系统标准规范 1.并网标准
    的头像 发表于 05-08 16:40 550次阅读

    铁塔基站分布式储能揭秘!

    的正常运转。为了解决这些问题,安科瑞推出了基站铁塔分布式储能解决方案,为基站的稳定供电提供了可靠的保障。 一、什么是基站铁塔分布式储能? 基站铁塔分布式储能系统是一种将储能电池
    的头像 发表于 02-12 16:42 1352次阅读
    铁塔基站<b class='flag-5'>分布式</b>储能揭秘!

    可靠稳定,经济灵活,真热插拔的MR30分布式IO工业通讯解决方案介绍

    MR30分布式IO是基于模块化设计、高性能的实时自动化IO系统,体积小巧、结构紧凑组合灵活。采用高速总线技术,所有模块均支持带电热插拔功能,具有丰富的兼容性,是不同场景下的分布式控制应用的完美
    的头像 发表于 02-07 10:55 778次阅读
    可靠稳定,经济灵活,真热插拔的MR30<b class='flag-5'>分布式</b>IO工业通讯<b class='flag-5'>解决方案</b>介绍

    分布式云化数据库有哪些类型

    分布式云化数据库有哪些类型?分布式云化数据库主要类型包括:关系型分布式数据库、非关系型分布式数据库、新SQL分布式数据库、以列方式存储数据、
    的头像 发表于 01-15 09:43 871次阅读

    MR30分布式IO模块引领装配调试智能化升级

    制造商面临的重大挑战。正是在这样的背景下,明达技术MR30分布式IO模块以其灵活高效、易于集成的特性,在印刷机装配调试生产线上大放异彩,引领了一场智能化的生产变革。
    的头像 发表于 01-07 16:31 580次阅读
    MR30<b class='flag-5'>分布式</b>IO模块引领装配<b class='flag-5'>调试</b>智能化升级

    MR30分布式IO在火电厂区的广泛应用

    在火电厂的复杂环境中,实现高效、安全、经济的运行是至关重要的。随着自动化技术的不断发展,分布式IO系统作为一种先进的控制手段,在火电厂区得到了广泛应用。明达技术推出MR30分布式IO模
    的头像 发表于 01-06 14:17 698次阅读
    MR30<b class='flag-5'>分布式</b>IO在火电厂区的广泛应用

    分布式、域控及SOA架构车身功能测试方案

    北汇信息推出分布式、域控以及SOA架构的车身功能测试解决方案,支持在实验室环境下完成车身单部件、系统级功能自动化测试,可以极大地提升车身功能的可靠性和稳定性。
    的头像 发表于 12-27 09:05 3387次阅读
    <b class='flag-5'>分布式</b>、域控及SOA架构车身功能测试<b class='flag-5'>方案</b>

    HarmonyOS Next 应用元服务开发-分布式数据对象迁移数据权限与基础数据

    恢复的数据; 从want中读取分布式数据对象组网id; 注册on()接口监听数据变更。在收到status为restore的事件的回中,实现数据恢复完毕时需要进行的业务操作。 调用
    发表于 12-24 09:40