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

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

3天内不再提示

第二届大会回顾第15期 | OpenHarmony性能调优工具介绍

OpenHarmony TSC 来源:OpenHarmony TSC 作者:OpenHarmony TSC 2024-03-05 08:40 次阅读

演讲嘉宾 | 刘 洋

回顾整理 | 廖 涛

排版校对 | 李萍萍

f2f95808-da88-11ee-b759-92fbcf53809c.png

嘉宾介绍

开发者工具分论坛

刘洋,江苏润和软件股份有限公司副总裁,聚焦芯片设计及底层软件、操作系统移植及核心算法的优化与适配,润和软件芯片业务创立人,润和芯片全栈解决方案平台HiHope发起人,带领公司进军国际芯片领域并成为ARM生态圈Linaro重要合作伙伴。OpenHarmony项目群工作委员会成员,OpenHarmony Dev-Board SIG(开发板兴趣组)创立人及组长。

视频回顾

打开哔哩哔哩APP,观看更清晰视频

正文内容

性能调优即调节操作系统、硬件以及应用三者间的关系,实现整个系统的性能最大化,使其满足现有的业务需求。性能优化是软件开发中最重要的工作之一,一个好的性能调优工具可以提升开发者的开发质量和效率。OpenHarmony上如何进行性能调优,有哪些高效易用的性能调优工具?润和软件副总裁刘洋在第二届OpenHarmony技术大会上进行了精彩分享。

f31f08fa-da88-11ee-b759-92fbcf53809c.png

01

Smartperf-Host

OpenHarmony性能调优工具“Smartperf-Host”是一款深入挖掘数据、细粒度地展示数据的性能功耗调优工具,为开发者提供了一套性能调优平台,支持了对CPU调度、频点、进程线程时间片、堆内存、帧率等数据进行采集和展示。该组件整体分为设备端和PC端两部分,设备端和PC端基于gRPC通信框架进行数据交互。其中,(1)设备端内部分为应用程序内嵌组件、命令行工具、性能调优服务、性能调优插件集合、部分系统工具及部分系统内核等模块;(2)PC端以Smartperf-Host网站的形式进行发布,内部分为Trace Streamer数据解析、SQLite数据存储、hdc设备管理、数据导入、UI绘制、数据分析等模块。

f33ca946-da88-11ee-b759-92fbcf53809c.png

02

配置抓取

Smartperf-Host工具端侧抓取所依赖的组件已原生预置在OpenHarmony系统中,在需要使用时,可通过网页基于Hdc设备管理进行连接,支持根据业务进行配置设定,业务范围包括CPU调优、进程线程调度分析调优、内存调优等。完成设定后,可进行在线直接抓取业务Trace,也可以选择命令行进行抓取。抓取结束后,即可通过网页进行业务分析解决问题。

f39fb25c-da88-11ee-b759-92fbcf53809c.png

03

界面展示

Smartperf-Host工具的菜单区域包括文件导入、配置、下载、Sql查询、在线文档等。各区域显示信息如下:

时间轴区域以颜色深浅表示CPU的使用负载情况

泳道图区域包括CPU区域和进程线程区域:CPU区域包括负载展示、CPU时间片展示、频点展示等信息;进程线程区域包括进程、线程、调用栈等信息

Tab显示区域针对不同业务的框选或点选进行数据展示

f3b6e710-da88-11ee-b759-92fbcf53809c.png

04

功能介绍

CPU调优:CPU调优包括CPU运行状态、CPU频率信息、CPU工作状态信息、软硬终端信息等性能功耗调优,展示方式为泳道图,支持图形用户界面GUI操作、分析数据。

f3d1cb02-da88-11ee-b759-92fbcf53809c.png

图中各区域详情:(1)CPU运行状态:颜色区分各进程、点击Slice显示CPU使用详情、支持CPU唤醒关系信息展示、支持CPU唤醒跳转功能;(2)CPU频点:基于时间轴频点变化展示、点击查看当前时间点频点信息、框选查看选择区域内频点信息;(3)CPU State:基于时间轴显示State的变化,0”表示“工作中”,“1”、“2”、“3”表示“不在工作状态”;点击查看当前时间点State信息、框选查看选择区域内State信息;(4)查看CPU统计信息:框选CPU Slice,以不同维度进行分析;以线程维度分析、以进程维度分析、CPU Usage排名、线程切换次数、各状态详情。

进程和线程调优:

查看到系统级所有进程级线程信息;

展开泳道图,查看对应进程下线程信息,包括线程状态及各线程的调用栈;

框选一定区域后,可查看到框选时间范围内的线程状态,各线程在CPU上的使用占比等信息;

点击线程时间片,可查看当前线程的状态,包括开始时间,持续时长,当前运行在哪个CPU上,优先等级,所属进程,上线文关系,唤醒关系等;

点击调用栈时间片信息,可查看当前调用栈的名称,开始时间,持续时间及调用栈深度。

f3e9e778-da88-11ee-b759-92fbcf53809c.pngf3fdc5cc-da88-11ee-b759-92fbcf53809c.png

内存调优:

泳道图展示malloc和mmap分配内存总量及趋势图;

根据框选区间统计各类型内存信息和占比;

根据事件类型计算其占比及size大小;

以火焰图的形式展示调用栈信息;

展示内存单次分配信息,包括调用的函数库,方法等;

可根据业务要求标记时间区间,计算区间内数据变化信息。

f41bb9ce-da88-11ee-b759-92fbcf53809c.png

05

调优案例介绍

CPU调度分析

场景描述:作为开发者,每次跟踪CPU调度关系是一件非常痛苦且耗时的事情,期望有工具能快速查看CPU唤醒关系信息;

问题分析:通过唤醒关系树一键显示功能,帮助开发者快速直观的显示各时间点的CPU唤醒关系,减少了开发者通过常规文本查找的工作量,切实帮助到了开发者。

f438dc84-da88-11ee-b759-92fbcf53809c.png

内存泄漏分析

场景描述:应用出现内存泄漏现象,需要定位内存泄漏点;

问题分析:通过问题Trace,查看内存的占比,利用工具从内存类型,到调用库,到具体方法的调用,逐层分析,确认内存泄漏原因,通过改进解决应用问题。

f461fbe6-da88-11ee-b759-92fbcf53809c.png

卡顿丢帧分析

场景描述:进入Launcher后界面出现卡顿现象;

问题分析:通过工具进行分析,查看到Render Service在一段时间内出现实际帧处理慢的现象,导致后续帧处理大范围处理延时,导致整体的卡顿现象。

f47a978c-da88-11ee-b759-92fbcf53809c.png

播放性能问题分析

场景描述:OpenHarmony 3.2版本以后媒体播放的CPU变高了,需要定位问题原因,并优化。

问题分析过程: (1)通过工具进行分析,导致问题的直接原因在于GStreamer的“vqueue:src 1971”线程一直在占用CPU,需要针对该线程做进一步的分析; f48eb0f0-da88-11ee-b759-92fbcf53809c.png

(2)通过对源代码打点定位分析,发现GStreamer在逻辑上只负责送显,没有找到问题根因,需要再通过工具定位Trace内部逻辑;

f4ada58c-da88-11ee-b759-92fbcf53809c.pngf4c171de-da88-11ee-b759-92fbcf53809c.png

(3)通过OpenHarmony Hiperf工具火焰图功能抓取Trace,分析Trace定位问题,检查发现是“GST_SYSTEM_CLOCK_ENTRY_WAIT_UNTIL”返回不符合预期,根因是内核的futex调用走的是32位的接口,而3568默认为64位内核+32位的 UserSpace,从而导致该接口未按照实际给的超时等待,总是提前返回;

f4d0fa82-da88-11ee-b759-92fbcf53809c.png

(4)因此,解决该问题需要通过修改相关定义,使GSteamer直接走系统调用接口。

f4e370f4-da88-11ee-b759-92fbcf53809c.png

06

工具获取

代码路径: https://gitee.com/openharmony/developtools_profiler/tree/master/host/smartperf
使用指导: https://gitee.com/openharmony/developtools_smartperf_host/tree/master/ide/src/doc/md
编译指导: https://gitee.com/openharmony/developtools_profiler/tree/master/host/smartperf/ide
https://gitee.com/openharmony/developtools_profiler/tree/master/host/smartperf/trace_streamer

E N D

关注我们,获取更多精彩。

审核编辑 黄宇

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

    关注

    25

    文章

    3722

    浏览量

    16322
收藏 人收藏

    评论

    相关推荐

    第二届开放原子大赛首批赛项颁奖仪式在武汉举办

    近日,在2024开放原子开发者大会暨首届开源技术学术大会开幕式上,第二届开放原子大赛首批赛项颁奖仪式成功举办。
    的头像 发表于 12-23 11:24 204次阅读

    谷东科技受邀参加2024第二届元宇宙大会

    近日,2024第二届元宇宙大会在海口开幕。本届大会以“赋能应用场景,智见广阔未来”为主题,汇聚了国内外的百余位顶尖专家、学者和行业领袖,就AI赋能产业健康发展和文体旅行业数字化融合等议题展开讨论,深入交流。谷东科技受邀参加,并获
    的头像 发表于 12-16 15:16 281次阅读

    美光科技第二届链博会精彩回顾

    此前,11月26-30日,历时5天,第二届中国国际供应链促进博览会在北京圆满落幕,一起来回顾美光科技在本次链博会的精彩时刻吧。
    的头像 发表于 12-03 13:35 158次阅读

    智芯公司亮相2024第二届中国电气工程大会

    近日,由智芯公司和北京邮电大学协同组织的2024第二届中国电气工程大会“先进通信技术赋能新型电力系统”专题分会场在安徽合肥成功举办。
    的头像 发表于 12-02 14:18 233次阅读

    帝奥微第二届代理商大会圆满召开

    近日,“帝奥微2024年第二届全国代理商大会” 在上海研发中心圆满召开。本次大会聚焦“智领芯程,合作共赢”主题,齐聚 80+代理商代表,共同探讨未来发展趋势。
    的头像 发表于 11-29 13:45 288次阅读

    成都华微亮相第二届脑机接口大会

    日前,第二届脑机接口大会在武汉市成功举办。本次大会以“脑机互联·共创未来”为主题,汇聚了来自全球各地的1500余位医学科学、脑科学、脑机接口领域企业代表,共同探讨脑机接口技术最新进展、应用前景以及产业发展趋势。成都华微作为国内相
    的头像 发表于 11-27 11:06 316次阅读

    知存科技邀您相约第二届集成芯片和芯粒大会

    2024年11月8日-10日,以“集成芯片:迈进大芯片时代”为主题的第二届集成芯片和芯粒大会将在北京嘉里大酒店举行。本次大会由基金委集成芯片前沿科学基础重大研究计划指导专家组指导,由中
    的头像 发表于 11-06 15:25 431次阅读

    第二届openEuler生态大会圆满结束

    近日,第二届openEuler生态大会(中国·湖南)成功举办。大会以“根植openEuler共建开源生态”为主题,旨在响应国家开源产业发展战略,推动建设以openEuler为根技术的开源操作系统在湖南创新发展,构建openEul
    的头像 发表于 10-31 16:02 275次阅读

    50万奖金池!开放原子大赛——第二届OpenHarmony创新应用挑战赛正式启动

    第二届OpenHarmony创新应用挑战赛作为开放原子大赛旗下的重要赛项,聚焦 OpenHarmony应用开发,致力提升开发者的动手实践能力与开发创新应用的能力。 赛项要求开发者
    发表于 10-24 15:40

    第二届开放原子大赛火热开启

    第二届开放原子大赛(简称“大赛”)是由开放原子开源基金会组织举办的开源技术领域专业赛事,聚焦解决“真问题”,重点覆盖基础软件、工业软件、人工智能大模型等领域。
    的头像 发表于 10-18 11:39 437次阅读

    第二届大会回顾25 | OpenHarmony上的Python设备应用开发

    Python以其简单、易学和功能强大而闻名,有着广泛的用户群体。采用Python开发有助于降低OpenHarmony的学习门槛。如何在OpenHarmony上用Python开发设备应用,有哪些关键技术?电
    的头像 发表于 08-27 11:53 711次阅读
    <b class='flag-5'>第二届</b><b class='flag-5'>大会</b><b class='flag-5'>回顾</b><b class='flag-5'>第</b>25<b class='flag-5'>期</b> | <b class='flag-5'>OpenHarmony</b>上的Python设备应用开发

    第二届大会回顾24 | 面向OpenHarmony的软件工程研究:机遇与挑战

    随着万物智联时代的到来,OpenHarmony作为一个开源的智能终端设备操作系统的框架和平台,将会遇到哪些机遇和挑战?北京航空航天大学教授、OpenHarmony技术俱乐部主任黎立在第二届Op
    的头像 发表于 08-07 18:14 1046次阅读
    <b class='flag-5'>第二届</b><b class='flag-5'>大会</b><b class='flag-5'>回顾</b><b class='flag-5'>第</b>24<b class='flag-5'>期</b> | 面向<b class='flag-5'>OpenHarmony</b>的软件工程研究:机遇与挑战

    第二届英飞凌汽车创新峰会IACE开幕在即

    第二届英飞凌汽车创新峰会IACE开幕在即
    的头像 发表于 05-20 11:42 544次阅读
    <b class='flag-5'>第二届</b>英飞凌汽车创新峰会IACE开幕在即

    报名开启!第二届OpenHarmony开发者大会2024重磅来袭!

    /jishu_2429449_1_1.html 预约直播: 第二届OpenHarmony开发者大会主论坛 第二届OpenHarmony
    发表于 05-14 15:23

    华工科技以智赋能,亮相第二届船舶行业安全生产大会

    4月18-19日,第二届船舶行业安全生产与应急管理技术交流大会在山东烟台举行。华工科技智能制造业务板块应邀参加,并发表题为《船体结构部件智能制造助力安全生产》的主题演讲。
    的头像 发表于 04-19 17:44 638次阅读
    华工科技以智赋能,亮相<b class='flag-5'>第二届</b>船舶行业安全生产<b class='flag-5'>大会</b>