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

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

3天内不再提示

【技术视界】HarmonyOS NEXT调优工具Smart Perf Host高效使用指南

HarmonyOS开发者 来源:未知 2023-11-07 21:15 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

# 技术视界# 【技术视界】栏目为开发者提供华为研发专家对于HarmonyOS关键技术的专业解读,从不同角度、不同方面帮助开发者更好更快地掌握HarmonyOS相关开发知识。本期文章为大家带来的是华为测试工具技术专家的分享,希望能为您的开发之路带来启发~

作者:Jun Tao,华为测试工具技术专家

在软件开发的过程中,很多开发者都经常会遇到一些性能问题,比如应用启动慢、点击滑动卡顿、应用后台被杀等,想要解决这些问题势必需要收集大量系统数据。而在收集数据的过程中,开发者则需要在各种工具和命令之间来回切换,不但容易错过问题发生时间点,数据收集完如何能将信息有效结合分析又将是一件复杂的工作。基于开发痛点,HarmonyOS NEXT通过构建Smart Perf工具全家桶,为开发和测试人员提供了测试、调优、分析一站式服务接下来让我们一起来看Smart Perf如何解决开发性能问题。wKgaomVKOYOANNfaAAHBZrVfPC4533.png在Smart Perf工具全家桶中,Smart PerfHost主要提供性能调优能力,目前可提供调优数据一键抓取,系统调度分析,CPU使用情况展示,调用栈展示,Native Memory跟踪和分析,文件系统跟踪,Trace抓取和分析和高阶使用方式(用户可以通过自定义SQL细粒度查询性能调优数据)等能力。想要了解Smart Perf Host如何在大量数据中进行性能问题快速分析,首先可通过典型场景分析模版来进行深入了解。

Smart Perf Host典型场景分析模板

目前已知Smart Perf Host场景分析模版提供整机CPU调度分析模板以及内存调优场景分析,在CPU调度分析模板中,可做到自动分析CPU调度数据,并协助发现CPU调度瓶颈。

wKgaomVKOYWALt2YAADEy2c4aTo092.png具体操作过程首先开发者可选择左侧导航栏中的“模板抓取(Record Template)”,然后连接设备,选择调度分析模板,开始抓取操作;待抓取完成后,就可以通过导航栏中的Scheduling Analysis自动进行数据分析和显示。调度分析模板可以按照CPU粒度和线程粒度进行数据分析和展示。

通过CPU粒度分析,开发人员可用来查看即CPU资源在被哪些任务使用。相对应可快速分析以下场景:

  • CPU大中小核利用情况是否达到调优人员预期

  • CPU大中小核运行频点是否达到调优人员预期

  • 谁在占用特定CPU的特定频点

  • 大核高频的任务是否可以往中小核迁移,以降低能耗

  • 功耗分析:Cpu idle值越大,睡眠越深,功耗越低

  • 各个CPU除了在执行任务,还在处理哪些中断

wKgaomVKOYWAbvDlAAGFJZmEeB0863.png而线程粒度分析,线程总运行时长,则可以用来查看特定任务在使用哪些CPU资源,可快速分析如下场景:

  • 占用大、中、小核和总CPU的TOP线程是否为预期线程

  • 关键线程(比如UI,RS等)大中小核和频点的使用情况是否为预期调度策略

wKgaomVKOYWAJqbwAAGgxjBTep4148.png若测试人员关注CPU和线程运行细节,则可以从泳道图继续查看。其中CPU泳道图提供细节数据如下:

  • 当前调用CPU的线程和对应的进程情况

  • 线程唤醒关系链

  • 查看CPU频点供给情况

  • 点选一个线程显示详情页(进程名、线程名、起始时间、时长、优先级、线程状态)

  • 框选CPU泳道可以查看CPU频点和基于线程的CPU运行分布,即框选的这段时间内线程在每个CPU上的运行时长和频点使用时长

wKgaomVKOYaAf3fGAAGV9-Q-btg892.png另Hiperf是HarmonyOS NEXT所提供的能力,可用来周期访问cpu的运行栈,导出调用栈,不受系统打点影响。目前Smart Perf Host支持能力如下:

  • 支持软硬件events抓取,如:cpu-cycles、instructions和page-faults等

  • 页面内抓取hiperf数据

  • 框选后可查看调用栈

  • 支持条件过滤功能

  • 可查看火焰图

wKgaomVKOYaATIdlAAJPX-Mg5n8408.png基于以上,我们通过一个实际案例来学习如何通过上述内容进行问题分析:

案例如下图所示:

wKgaomVKOYaAGbj5AAIMua72Bjs928.png如图我们可看到问题在于某个应用启动时间比较长,首先通过通过整机调度分析模板能够发现tb线程单次运行时间长达79.31ms,且通过CPU泳道确认该线程运行在中核,2.0GHz,因此CPU资源供给没有问题;接下来我们展开应用进程泳道图,在线程泳道图中可定位出运行时间较长的阶段(但无法看到深层的函数,需使用hiperf进一步分析)。

wKgaomVKOYeAMuAMAAIhGuLNwr8108.png

我们直接通过抓取Hiperf做进一步分析。首先基于上面已经发现的运行时间长阶段,通过M键进行锁定,然后在Hiperf泳道图中选中对应位置,最后使用火焰图定位阻塞函数,能够发现一个jsNapi执行时间太长。

基于Smart Perf Host进行内存跟踪和分析

通过Smart Perf Host开发及测试人员可查看内存的分配和释放等情况,了解内存详细信息,并支持火焰图查看。如下图所示,在“Native Memory”中可显示内存详情,比如内存地址,内存申请和释放的时间点,内存大小和单次栈信息等。在不同特定场景中,Native Memory可发挥追踪和分析、内存申请/释放分析、调用栈本地符号化以及支持内存抓取条件可配作用。

目前Smart Perf Host工具代码全部开源,想要获取和部署Smart Perf Host工具,可参考以下路径进行编译部署。

wKgaomVKOYeAPc4EAAE3QbPh6JY744.png截止到目前,Smart PerfHost能力规划中已支持近30个开发能力,25个能力正处于开发测试阶段,能力覆盖性能调优模板、工具系统能力、系统依赖以及用户体验提升。开发者还可通过代码染色系统进行代码覆盖率报告生成,执行上不但能沿用原有自测使用习惯无需更换环境,还可支持共享代码下载环境无需单独部署服务。从开发到调测工具都全面升级的HarmonyOS NEXT 正助力HarmonyOS应用生态正在开启一个新的阶段,构建繁荣的应用生态,还需更多开发者的加入。

更多推荐


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

    关注

    80

    文章

    2156

    浏览量

    36277

原文标题:【技术视界】HarmonyOS NEXT调优工具Smart Perf Host高效使用指南

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

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    解锁Zephyr实时操作系统深度能力

    可以说,代码编写只是项目开发的起点,而随之而来的资源分析与性能才是确保系统稳定可靠的关键环节。
    的头像 发表于 01-30 09:16 6191次阅读

    Linux系统内核参数实战指南

    Linux 内核参数是系统性能优化的核心环节。随着云原生架构的普及和硬件性能的飞速提升,默认的内核参数配置往往无法充分发挥系统潜力。在高并发 Web 服务、大数据处理、容器化部署等场景下,合理的内核参数调整可带来 30%-200% 的性能提升。
    的头像 发表于 01-28 14:27 671次阅读

    TDK SmartMotion Platform Ver. G硬件使用指南:开启高效传感器开发之旅

    TDK SmartMotion Platform Ver. G硬件使用指南:开启高效传感器开发之旅 在当今的电子技术领域,传感器的应用越来越广泛,而如何高效地对传感器进行开发和评估成为
    的头像 发表于 12-26 10:30 493次阅读

    HarmonyOSAI编程智慧

    Beta1版本开始支持。 注意 当前支持对Launch冷启动问题和Frame卡顿丢帧问题进行智慧分析。 Profiler工具中已集成智慧
    发表于 09-01 15:15

    大彩讲堂:VisualHMI-LUA教程-on_screen_change回函数使用指南

    on_screen_change回函数使用指南
    的头像 发表于 08-31 16:32 1101次阅读
    大彩讲堂:VisualHMI-LUA教程-on_screen_change回<b class='flag-5'>调</b>函数<b class='flag-5'>使用指南</b>

    大彩讲堂:VisualHMI-LUA教程-on_update回函数使用指南

    函数使用指南
    的头像 发表于 08-31 16:25 1056次阅读
    大彩讲堂:VisualHMI-LUA教程-on_update回<b class='flag-5'>调</b>函数<b class='flag-5'>使用指南</b>

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

    Beta1版本开始支持。 注意 当前支持对Launch冷启动问题和Frame卡顿丢帧问题进行智慧分析。 Profiler工具中已集成智慧
    发表于 08-14 11:12

    Linux系统性能方案

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

    MySQL配置技巧

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

    Quartus工具使用指南

    电子发烧友网站提供《Quartus工具使用指南.pdf》资料免费下载
    发表于 07-15 16:34 1次下载

    第三届大会回顾第6期 | HarmonyOS NEXT原生智能,助力应用低成本生而智能

    原生智能是HarmonyOS NEXT的核心能力之一,通过将人工智能(AI)技术与操作系统深度融合,实现了从底层到应用层的全面智能化。HarmonyOS
    的头像 发表于 07-14 18:04 1303次阅读
    第三届大会回顾第6期 | <b class='flag-5'>HarmonyOS</b> <b class='flag-5'>NEXT</b>原生智能,助力应用低成本生而智能

    Nginx在企业环境中的策略

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

    HarmonyOS入门指南

    上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。 2、开源框架 harmony-utils 一款功能丰富且极易上手的HarmonyOS
    的头像 发表于 06-27 00:11 910次阅读

    HarmonyOS5云服务技术分享--云数据库使用指南

    ? 华为云数据库(CloudDB)在HarmonyOS中的使用指南 ? ​​嗨,开发者朋友们!​​ 今天咱们来聊聊华为云数据库(CloudDB)在HarmonyOS应用中的集成和使用技巧。无论你是刚
    发表于 05-22 18:29

    第三届大会回顾第2期 | HarmonyOS NEXT内核驱动生态兼容与竞争力思考

    随着HarmonyOS NEXT生态和技术的发展,驱动框架作为北向和南向的生态中枢,有很多的机会。例如,提供更多的信息到应用层,实现精准的性能功耗控制;打破传统的分层解耦,简化关键协议、关键路径等等。
    的头像 发表于 05-19 19:17 1971次阅读
    第三届大会回顾第2期 | <b class='flag-5'>HarmonyOS</b> <b class='flag-5'>NEXT</b>内核驱动生态兼容与竞争力思考