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

    文章

    10824

    浏览量

    211088
  • gpu
    gpu
    +关注

    关注

    28

    文章

    4700

    浏览量

    128673
  • 分布式
    +关注

    关注

    1

    文章

    878

    浏览量

    74459
  • HarmonyOS
    +关注

    关注

    79

    文章

    1967

    浏览量

    29997

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

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

收藏 人收藏

    评论

    相关推荐

    分布式光纤测温解决方案

    分布式光纤测温解决方案
    的头像 发表于 11-12 01:02 74次阅读
    <b class='flag-5'>分布式</b>光纤测温<b class='flag-5'>解决方案</b>

    TDA3xx ISS调试基础设施

    电子发烧友网站提供《TDA3xx ISS调试基础设施.pdf》资料免费下载
    发表于 10-11 10:16 0次下载
    TDA3xx ISS<b class='flag-5'>调</b><b class='flag-5'>优</b>和<b class='flag-5'>调试</b>基础设施

    基于分布式存储系统医疗影像数据存储解决方案

    基于分布式存储系统医疗影像数据存储解决方案
    的头像 发表于 09-14 09:53 258次阅读
    基于<b class='flag-5'>分布式</b>存储系统医疗影像数据存储<b class='flag-5'>解决方案</b>

    医疗PACS影像数据的极速分布式块存储解决方案

    医疗PACS影像数据的极速分布式块存储解决方案
    的头像 发表于 08-23 10:13 264次阅读
    医疗PACS影像数据的极速<b class='flag-5'>分布式</b>块存储<b class='flag-5'>解决方案</b>

    昊衡科技推出分布式光纤传感教学解决方案——OFDR技术首次走进课堂,实现领域创新

    OFDR作为国内首家实现OFDR技术商用化以及OFDR技术综合解决方案提供商,武汉昊衡科技推出了OFDR分布式光纤传感教学解决方案,让OFD
    的头像 发表于 08-02 08:18 279次阅读
    昊衡科技推出<b class='flag-5'>分布式</b>光纤传感教学<b class='flag-5'>解决方案</b>——OFDR<b class='flag-5'>技术</b>首次走进课堂,实现领域创新

    黑龙江电力高性能WDS分布式存储系统解决方案

    黑龙江电力高性能WDS分布式存储系统解决方案
    的头像 发表于 07-01 09:54 322次阅读
    黑龙江电力高性能WDS<b class='flag-5'>分布式</b>存储系统<b class='flag-5'>解决方案</b>

    分布式智慧终端提升环保监测能力的成功案例

    讯维分布式智慧终端在提升环保监测能力方面的成功案例,可能涉及其在不同环保监测场景中的应用和实际效果。以下是一个假设性的成功案例,以展示讯维分布式智慧终端如何在实际操作中提升环保监测能力
    的头像 发表于 04-08 15:29 324次阅读

    分布式存储与计算:大数据时代的解决方案

    分布式存储和计算技术应运而生,并迅速成为处理大数据的首选方案。本文将深入探讨分布式存储和计算的概念、优势及其在各个领域的应用情况。 1.分布式
    的头像 发表于 03-07 14:42 687次阅读

    鸿蒙OS 分布式任务调度

    鸿蒙OS 分布式任务调度概述 在 HarmonyO S中,分布式任务调度平台对搭载 HarmonyOS 的多设备构筑的“超级虚拟终端”提供统一的组件管理能力,为应用定义统一的能力基线、
    的头像 发表于 01-29 16:50 453次阅读

    分布式智慧终端:挑战与解决方案

    分布式智慧终端在应用中面临多种挑战,以下是其中一些关键的挑战以及可能的解决方案: 数据一致性挑战 :在分布式系统中,数据的一致性是一个关键问题。由于数据分布在多个节点上,如何保证数据的
    的头像 发表于 01-24 14:50 402次阅读

    分布式光伏电力监控解决方案

    分布式光伏电力监控解决方案
    的头像 发表于 01-14 08:07 493次阅读
    <b class='flag-5'>分布式</b>光伏电力监控<b class='flag-5'>解决方案</b>

    分布式系统硬件资源池原理和接入实践

    把各个设备的硬件外设抽象为外设信息单元,外设信息在各个可信设备之间自动同步,如此,实现了外设信息的全局可见;结合分布式硬件虚拟化技术,实现任意设备之间的硬件外设能力跨设备调用;分布式
    发表于 12-06 10:02

    浅析Redis 分布式解决方案

    Redis 分布式解决方案是一种基于Redis实现的分布式锁机制,可以确保在分布式环境中对共享资源的访问进行同步控制,避免出现竞态条件和数据不一致的问题。在
    的头像 发表于 12-04 14:00 461次阅读

    redis分布式锁可能出现的问题及解决方案

    Redis分布式锁是一种常见的解决分布式系统中并发问题的方案。虽然Redis分布式锁具有许多优点,但也存在一些潜在的问题需要注意。本文将详细介绍Redis
    的头像 发表于 12-04 11:29 913次阅读

    springcloud 分布式事务解决方案实例

    么都执行成功,要么都执行失败。本文将介绍如何使用Spring Cloud来实现分布式事务。 在分布式系统中,使用数据库事务来保证数据一致性是常见的做法。Spring Cloud通过集成各种分布式事务
    的头像 发表于 12-03 16:32 1086次阅读