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

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

3天内不再提示

鸿蒙智联设备调试调优面临的挑战

HarmonyOS开发者 来源:HarmonyOS开发者 作者:HarmonyOS开发者 2021-12-17 14:42 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

作者:zhaowenguang,dinglu, 华为高级工程师

Huawei LiteOS是轻量级的开源物联网操作系统智能硬件使能平台,可广泛应用于智能家居、穿戴式、车联网、制造业等领域,使物联网终端开发更简单、互联更加容易、业务更加智能、体验更加顺畅、数据更加安全。

它具有入门简单、开发便捷,轻量级、低功耗、广联接,生态体系完善等优点。提供了若干高效硬件维测能力,通过集成到DevEco Device Tool中,形成了可供开发者使用的调试调优工具,助力开发者在鸿蒙智联设备调试调优过程中更加精准的分析、定位问题。

接下来,我们将重点介绍DevEco Device Tool中集成的一系列调试调优工具。

一、鸿蒙智联设备调试调优面临的挑战

开发者在鸿蒙智联设备调试调优过程中面临如下挑战:

系统镜像文件太大,分析和优化难度较大。

运行态内存紧缺,系统各任务栈大小无法设置。

性能瓶颈无法定位,不能针对性的进行优化。

仅仅靠添加打印和人工分析日志来定位问题效率低下。

内存问题最难定位,缺少检测工具。

如何应对这些挑战,让开发者能高效且准确的完成鸿蒙智联设备调试调优?

二、高效调试调优五大法宝

针对以上挑战,HUAWEI DevEco Device Tool版本中提供了鸿蒙智联设备调试调优五大法宝:镜像分析工具、栈估算分析工具、性能分析工具、可视化Trace工具、轻量级内存检测工具,下面我们将逐一介绍。注:镜像分析工具和栈估算分析工具已集成于HUAWEI DevEco Device Tool 3.0 Beta1版本中,目前只支持GCC编译的镜像,Clang暂不支持。性能分析工具、可视化Trace工具及轻量级内存检测工具将尽快上线,具体上线时间待官方通知。

1. 镜像分析工具

镜像分析工具,主要解决“资源受限情况下镜像的分析及优化”。通过对编译生成的map文件进行内存占用分析,获取镜像中各模块对ROMRAM的占用大小。

该工具支持查看内存区域总览、内存详细信息、文件大小及模块大小。同时支持一些统计功能,包括排序、过滤、导出表格等操作以及按文件或模块筛选查看的功能。镜像分析结果按照内存区域、详细信息、文件大小和模块大小4个界面进行展示。

Memory Regions:内存区域界面以表格的形式展示了每个区域的内存使用情况。如图1所示,Memory Regions包含了起始地址、结束地址、大小、可用内存以及内存占用。

54b1b602-5a8f-11ec-b2e9-dac502259ad0.png

图1 Memory Regions

Memory Details:内存详细信息里显示了Section和Symbol的信息。如图2所示,Memory Details通过树状表格展示层级关系、名称、VMA、LMA以及Size。

54e648ae-5a8f-11ec-b2e9-dac502259ad0.png

图2 Memory Details

File Size:文件大小里展示了.a文件和.o文件的层级关系以及不同section的内存占用。

Module Size:模块大小里展示了模块和组件的层级关系以及不同section的内存占用。

使用该工具可帮助开发者快速评估并优化镜像的ROM、RAM使用情况。

2. 栈估算分析工具

栈估算分析工具,主要解决“运行态内存紧缺情况下系统各任务栈的设置”。通过遍历反汇编文件,计算函数的局部栈开销并分析函数之间的调用关系,从而估算出任务的栈大小,为栈溢出分析、栈空间优化提供基础的数据参考。

该工具提供函数调用关系图、函数总的最大栈开销、内部开销,并提供展示函数所在具体位置。栈分析结果按照函数列表和调用关系进行展示。

Function List:函数列表界面显示每个函数的函数名称和函数内部栈开销,如图3所示。

55295914-5a8f-11ec-b2e9-dac502259ad0.png

图3 Function List

Call Graph:调用关系界面显示每个函数的调用关系,包括函数名称、调用深度、函数最大栈开销。

使用该工具可帮助开发者减少爆栈风险,节省内存优化栈空间。

3. 性能分析工具

性能分析工具,主要解决“性能瓶颈的定位及优化”。基于事件采样统计的原理,实现热点函数、热点路径的分析,助力识别性能瓶颈。

该工具提供计数模式及采样模式两种工作模式,采集事件发生的次数及执行时间以及上下文如PC,回溯栈等,用于解析出热点函数与热点路径等信息。同时,该工具还支持3种类型的采样事件:

硬件PMU事件:如cycle,cache等。

软件打点采样:如中断、内存申请等。

高精度周期事件:即按固定周期采样,精度us级。支持热点函数及热点路径的查看。

5565ac0c-5a8f-11ec-b2e9-dac502259ad0.png

图4 性能分析工具界面

使用该工具可帮助开发者快速有效识别性能瓶颈,辅助系统性能优化。

4. 可视化Trace工具

可视化Trace工具,主要解决“程序运行不符合预期情况下的问题定位”。通过采用静态代码桩和缓冲区记录的方式,在桩被执行时,获取事件发生的上下文、系统任务等信息,并记录到缓冲区,帮助开发者了解何时何处发生的什么事件。

该工具以图形界面展示事件详情、CPU占比、内存趋势图、任务切换轨迹等信息。下面是Trace 可视化的4个界面:

事件信息视图:如图5所示。使用自然语言解释系统何时(时间戳)何处(在哪个CPU的那个任务中)发生的具体事件。

55b0d380-5a8f-11ec-b2e9-dac502259ad0.png

图5 时间信息视图

任务轨迹视图:如图6所示。以系统时间为纵坐标,展示任务切换的轨迹,如图,不同颜色表示不同的任务,不同色块的迁移对应一次任务切换,点击色块会显示导致任务切换的原因,色块的长度对应其运行的时长。

56005748-5a8f-11ec-b2e9-dac502259ad0.png

图6 任务轨迹视图

CPU负载视图:如图7所示。统计任意时间段内的任务执行cpu占比,不同颜色对应不同的任务。

563626fc-5a8f-11ec-b2e9-dac502259ad0.png

图7 CPU负载视图

内存监控视图:如图8所示。以系统时间为横坐标,展示随时间变化的系统内存使用情况。

56815046-5a8f-11ec-b2e9-dac502259ad0.png

图8 内存监控视图

使用该工具可帮助开发者清晰的了解系统运行的轨迹,更好的理解系统、辅助定位死机死锁问题。

5. 轻量级内存检测工具

轻量级内存检测工具,主要解决“一键定位内存问题”。该工具基于影子内存映射和标记的原理,可快速解决内存越界访问、释放后访问、多重释放等疑难杂症,并且在检测到错误后实时打印回溯栈。如图9所示,轻量级内存检测工具结合backtrace,快速一键式定位问题代码段。

56b66efc-5a8f-11ec-b2e9-dac502259ad0.png

图9 定位到出错的代码行号

使用该工具可帮助开发者根据回溯栈一键定位到出错的代码行号。

以上就是本期全部内容,相信五大法宝定能让你在鸿蒙智联设备开发的道路上披荆斩棘,赶快点击下方链接下载试用吧!

原文标题:鸿蒙智联设备开发,这五大法宝你应该拥有

文章出处:【微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。

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

    关注

    2942

    文章

    47385

    浏览量

    408763
  • 智能硬件
    +关注

    关注

    205

    文章

    2404

    浏览量

    111080
  • 鸿蒙
    +关注

    关注

    60

    文章

    2866

    浏览量

    45403
  • 鸿蒙智联
    +关注

    关注

    0

    文章

    30

    浏览量

    683

原文标题:鸿蒙智联设备开发,这五大法宝你应该拥有

文章出处:【微信号:HarmonyOS_Dev,微信公众号:HarmonyOS开发者】欢迎添加关注!文章转载请注明出处。

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    开鸿斩获开源鸿蒙TOP共建单位

    11月28日,鸿蒙星光盛典生态论坛在深圳隆重举办。凭借在开源鸿蒙领域的持续深耕与实践积累,九科技旗下子公司九开鸿受邀出席这一高规格盛会。与鸿蒙
    的头像 发表于 12-05 13:59 341次阅读

    实战RK3568性能:如何利用迅为资料压榨NPU潜能-在Android系统中使用NPU

    《实战RK3568性能:如何利用迅为资料压榨NPU潜能-在Android系统中使用NPU》
    的头像 发表于 11-07 13:42 257次阅读
    实战RK3568性能<b class='flag-5'>调</b><b class='flag-5'>优</b>:如何利用迅为资料压榨NPU潜能-在Android系统中使用NPU

    天翼云基于开源欧拉的智能实践

    在数字经济加速渗透的当下,操作系统作为底层基础设施的核心,其稳定性与适配性直接关系到行业数字化进程。随着CentOS停止维护,国内企业面临操作系统迁移的紧迫需求,天翼云基于开源欧拉研发的CTyunOS,不仅成为这一迁移浪潮中的关键解决方案,更通过智能
    的头像 发表于 10-17 11:04 497次阅读

    HarmonyOSAI编程智慧

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

    赋能无人机电,液态铝电解电容器LKM破解电浪涌电流与空间挑战

    效率。然而,电机启动电流冲击大与严苛的空间限制是无人机电目前面临的难题。内部选用耐纹波电流能力强、小尺寸的电容器,是应对这两项挑战的关键解决方案。01液态铝电解电
    的头像 发表于 09-01 09:56 453次阅读
    赋能无人机电<b class='flag-5'>调</b>,液态铝电解电容器LKM破解电<b class='flag-5'>调</b>浪涌电流与空间<b class='flag-5'>挑战</b>

    HarmonyOS AI辅助编程工具(CodeGenie)智慧

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

    Linux网络性能方案

    在当今高并发、大流量的互联网环境下,网络性能往往成为系统的瓶颈。作为一名资深运维工程师,我在生产环境中遇到过无数次因为TCP/IP参数配置不当导致的性能问题。今天分享一套完整的Linux网络性能方案,帮助大家彻底解决网络性能瓶颈。
    的头像 发表于 08-06 18:01 995次阅读

    Linux内核参数方案

    在高并发微服务环境中,网络性能往往成为K8s集群的瓶颈。本文将深入探讨如何通过精细化的Linux内核参数,让你的K8s节点网络性能提升30%以上。
    的头像 发表于 08-06 17:50 740次阅读

    Linux系统性能方案

    关键要点预览:本文将深入解析Linux系统性能瓶颈的根本原因,提供可直接落地的方案,让你的系统性能提升30-50%!
    的头像 发表于 08-06 17:49 622次阅读

    MySQL配置技巧

    上个月,我们公司的核心业务系统突然出现大面积超时,用户投诉电话不断。经过紧急排查,发现是MySQL服务器CPU飙升到99%,大量慢查询堆积。通过一系列配置和SQL优化,最终在30分钟内恢复了服务。
    的头像 发表于 07-31 10:27 422次阅读

    FOPLP工艺面临挑战

    FOPLP 技术目前仍面临诸多挑战,包括:芯片偏移、面板翘曲、RDL工艺能力、配套设备和材料、市场应用等方面。
    的头像 发表于 07-21 10:19 1188次阅读
    FOPLP工艺<b class='flag-5'>面临</b>的<b class='flag-5'>挑战</b>

    Nginx在企业环境中的策略

    Nginx作为现代互联网架构中最重要的Web服务器和反向代理服务器,其性能对企业级应用的稳定性和效率至关重要。本指南将从运维实践角度出发,详细介绍Nginx在企业环境中的各种
    的头像 发表于 07-14 11:13 420次阅读

    手把手教你如何Linux网络参数

    在高并发网络服务场景中,Linux内核的默认网络参数往往无法满足需求,导致性能瓶颈、连接超时甚至服务崩溃。本文基于真实案例分析,从参数解读、问题诊断到优化实践,手把手教你如何Linux网络参数,支撑百万级并发连接。
    的头像 发表于 05-29 09:21 675次阅读

    智慧路灯的推广面临哪些挑战

    引言 在智慧城市建设的宏伟蓝图中,叁仟智慧路灯的推广面临哪些挑战?叁仟智慧路灯作为重要的基础设施,承载着提升城市照明智能化水平、实现多功能集成服务的使命。然而,尽管叁仟智慧路灯前景广阔,在推广过程中
    的头像 发表于 03-27 17:02 535次阅读

    xgboost超参数技巧 xgboost在图像分类中的应用

    一、XGBoost超参数技巧 XGBoost(eXtreme Gradient Boosting)是一种基于梯度提升决策树(GBDT)的高效梯度提升框架,在机器学习竞赛和实际业务应用中取得了卓越
    的头像 发表于 01-31 15:16 2183次阅读