关于harmonyos:HDC2021技术分论坛鸿蒙智联设备开发这五大法宝你应该拥有

5次阅读

共计 2585 个字符,预计需要花费 7 分钟才能阅读完成。

作者: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 文件进行内存占用剖析,获取镜像中各模块对 ROM、RAM 的占用大小。

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

Memory Regions:内存区域界面以表格的模式展现了每个区域的内存应用状况。如图 1 所示,Memory Regions 蕴含了起始地址、完结地址、大小、可用内存以及内存占用。

图 1 Memory Regions

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

图 2 Memory Details

File Size:文件大小里展现了.a 文件和.o 文件的层级关系以及不同 section 的内存占用。
Module Size:模块大小里展现了模块和组件的层级关系以及不同 section 的内存占用。
应用该工具可帮忙开发者疾速评估并优化镜像的 ROM、RAM 应用状况。

  1. 栈估算剖析工具
    栈估算剖析工具,次要解决“运行态内存紧缺状况下零碎各工作栈的设置”。通过遍历反汇编文件,计算函数的部分栈开销并剖析函数之间的调用关系,从而估算出工作的栈大小,为栈溢出剖析、栈空间优化提供根底的数据参考。

该工具提供函数调用关系图、函数总的最大栈开销、外部开销,并提供展现函数所在具体位置。栈剖析后果依照函数列表和调用关系进行展现。

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

图 3 Function List

Call Graph:调用关系界面显示每个函数的调用关系,包含函数名称、调用深度、函数最大栈开销。
应用该工具可帮忙开发者缩小爆栈危险,节俭内存优化栈空间。

  1. 性能剖析工具
    性能剖析工具,次要解决“性能瓶颈的定位及优化”。基于事件采样统计的原理,实现热点函数、热点门路的剖析,助力辨认性能瓶颈。

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

硬件 PMU 事件:如 cycle,cache 等。
软件打点采样:如中断、内存申请等。
高精度周期事件:即按固定周期采样,精度 us 级。反对热点函数及热点门路的查看。

图 4 性能剖析工具界面

应用该工具可帮忙开发者疾速无效辨认性能瓶颈,辅助零碎性能优化。

  1. 可视化 Trace 工具
    可视化 Trace 工具,次要解决“程序运行不合乎预期状况下的问题定位”。通过采纳动态代码桩和缓冲区记录的形式,在桩被执行时,获取事件产生的上下文、零碎工作等信息,并记录到缓冲区,帮忙开发者理解何时何处产生的什么事件。

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

事件信息视图:如图 5 所示。应用自然语言解释零碎何时(工夫戳)何处(在哪个 CPU 的那个工作中)产生的具体事件。

图 5 工夫信息视图

工作轨迹视图:如图 6 所示。以零碎工夫为纵坐标,展现工作切换的轨迹,如图,不同色彩示意不同的工作,不同色块的迁徙对应一次工作切换,点击色块会显示导致工作切换的起因,色块的长度对应其运行的时长。

图 6 工作轨迹视图

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

图 7 CPU 负载视图

内存监控视图:如图 8 所示。以零碎工夫为横坐标,展现随工夫变动的零碎内存应用状况。

图 8 内存监控视图

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

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

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

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

以上就是本期全部内容,置信五大法宝定能让你在鸿蒙智联设施开发的路线上乘风破浪,赶快点击下方链接下载试用吧!

HUAWEI DevEco Device Tool 3.0 Beta1 下载链接:https://device.harmonyos.com/…

正文完
 0