首页 > 其他分享 >HarmonyOS NEXT调优工具Smart Perf Host高效使用指南

HarmonyOS NEXT调优工具Smart Perf Host高效使用指南

时间:2023-11-08 10:22:16浏览次数:40  
标签:分析 Perf NEXT HarmonyOS Host 线程 CPU Smart

 

在软件开发的过程中,很多开发者都经常会遇到一些性能问题,比如应用启动慢、点击滑动卡顿、应用后台被杀等,想要解决这些问题势必需要收集大量系统数据。而在收集数据的过程中,开发者则需要在各种工具和命令之间来回切换,不但容易错过问题发生时间点,数据收集完如何能将信息有效结合分析又将是一件复杂的工作。基于开发痛点,HarmonyOS NEXT通过构建Smart Perf工具全家桶,为开发和测试人员提供了测试、调优、分析一站式服务,接下来让我们一起来看Smart Perf如何解决开发性能问题。

在Smart Perf工具全家桶中,Smart Perf Host主要提供性能调优能力,目前可提供调优数据一键抓取,系统调度分析,CPU使用情况展示,调用栈展示,Native Memory跟踪和分析,文件系统跟踪,Trace抓取和分析和高阶使用方式(用户可以通过自定义SQL细粒度查询性能调优数据)等能力。想要了解Smart Perf Host如何在大量数据中进行性能问题快速分析,首先可通过典型场景分析模版来进行深入了解。

一、Smart Perf Host典型场景分析模板

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

具体操作过程首先开发者可选择左侧导航栏中的“模板抓取(Record Template)”,然后连接设备,选择调度分析模板,开始抓取操作;待抓取完成后,就可以通过导航栏中的Scheduling Analysis自动进行数据分析和显示。调度分析模板可以按照CPU粒度和线程粒度进行数据分析和展示。通过CPU粒度分析,开发人员可用来查看即CPU资源在被哪些任务使用。相对应可快速分析以下场景:CPU大中小核利用情况是否达到调优人员预期

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

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

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

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

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

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

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

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

若测试人员关注CPU和线程运行细节,则可以从泳道图继续查看。其中CPU泳道图提供细节数据如下:当前调用CPU的线程和对应的进程情况

● 线程唤醒关系链

● 查看CPU频点供给情况

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

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

另Hiperf是HarmonyOS NEXT所提供的能力,可用来周期访问cpu的运行栈,导出调用栈,不受系统打点影响。目前Smart Perf Host支持能力如下:支持软硬件events抓取,如:cpu-cycles、instructions和page-faults等

● 页面内抓取hiperf数据

● 框选后可查看调用栈

● 支持条件过滤功能

● 可查看火焰图

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

案例如下图所示:如图我们可看到问题在于某个应用启动时间比较长,首先通过通过整机调度分析模板能够发现tb线程单次运行时间长达79.31ms,且通过CPU泳道确认该线程运行在中核,2.0GHz,因此CPU资源供给没有问题;接下来我们展开应用进程泳道图,在线程泳道图中可定位出运行时间较长的阶段(但无法看到深层的函数,需使用hiperf进一步分析)。我们直接通过抓取Hiperf做进一步分析。首先基于上面已经发现的运行时间长阶段,通过M键进行锁定,然后在Hiperf泳道图中选中对应位置,最后使用火焰图定位阻塞函数,能够发现一个jsNapi执行时间太长。

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

通过Smart Perf Host开发及测试人员可查看内存的分配和释放等情况,了解内存详细信息,并支持火焰图查看。如下图所示,在“Native Memory”中可显示内存详情,比如内存地址,内存申请和释放的时间点,内存大小和单次栈信息等。在不同特定场景中,Native Memory可发挥追踪和分析、内存申请/释放分析、调用栈本地符号化以及支持内存抓取条件可配作用。目前Smart Perf Host工具代码全部开源,想要获取和部署Smart Perf Host工具,可参考以下路径进行编译部署。截止到目前,Smart Perf Host能力规划中已支持近30个开发能力,25个能力正处于开发测试阶段,能力覆盖性能调优模板、工具系统能力、系统依赖以及用户体验提升。开发者还可通过代码染色系统进行代码覆盖率报告生成,执行上不但能沿用原有自测使用习惯无需更换环境,还可支持共享代码下载环境无需单独部署服务。从开发到调测工具都全面升级的HarmonyOS NEXT 正助力HarmonyOS应用生态正在开启一个新的阶段,构建繁荣的应用生态,还需更多开发者的加入。

标签:分析,Perf,NEXT,HarmonyOS,Host,线程,CPU,Smart
From: https://www.cnblogs.com/HarmonyOSDev/p/17816774.html

相关文章

  • 37-Vue脚手架-nextTick(使用nextTick优化TodoList案例)
    this.$nextTick(十分常用的功能)语法:this.$nextTick(回调函数)作用:在下一次DOM更新结束后执行其指定的回调什么时候用:当改变数据后,要基于更新后的新DOM进行某些操作时,要在nextTick所指定的回调函数中执行 案例:使用 $nextTick优化TodoList案例,在UserItem中添加一个编辑按......
  • HarmonyOS应用开发
    引言本章将深入探讨HarmonyOS应用开发的关键方面,包括应用的生命周期、数据存储和网络访问。了解这些内容对于创建功能丰富、高效的HarmonyOS应用至关重要。目录HarmonyOS应用的生命周期HarmonyOS应用的数据存储HarmonyOS应用的网络访问总结1.HarmonyOS应用的生......
  • Vue中nextTick的使用及原理
    在Vue.js中,nextTick方法可以让我们在DOM更新后执行一些操作。通常情况下,在数据发生变化后,Vue.js会异步地更新DOM,这样可以减少不必要的DOM操作,提高性能。但是,有时候我们需要在DOM更新后对页面进行一些后续操作,比如修改元素的样式、设置定时器等,这时候就需要用到nextTick方法。一、ne......
  • iperf案例
    iperf吞吐案例一、Iperf工具介绍Iperf是一款基于TCP/IP和UDP/IP的网络性能测试工具,它可以用来测量网络带宽和网络质量,还可以提供网络延迟抖动、数据包丢失率、最大传输单元等统计信息。帮助定位网络瓶颈,解决网络故障。Supernova测试仪内置了多种开源软件,iperf就是其中之一,在测试仪......
  • Perf in Linux
    PerfCommands:perfroot@f5c6cb9f45b1:/#perfusage:perf[--version][--help][OPTIONS]COMMAND[ARGS]Themostcommonlyusedperfcommandsare:annotateReadperf.data(createdbyperfrecord)anddisplayannotatedcodearchive......
  • Design editor is unavailable until next gradle sync
         ......
  • HarmonyOS Sans 系列字体托管计划
    华为几年前公开了HarmonyOS上的默认字体HarmonyOSSans系列。笔者自己使用的过程中,感觉字体设计很优美,逐渐在自己日常使用的Linux发行版、Chrome浏览器、代码编辑器中将它作为所有中文部分的默认字体。今天,笔者偶然发现了GitHub上对应的开源Web字体IKKI2000/harmonyo......
  • 重定向到 Next.js 应用程序文件夹中的 404 Not Found 页面:分步指南
    问题描述:你希望将所有的404请求重定向到Next.js应用程序文件夹中的404NotFound页面。解决方案:确保你已经在你的Next.js应用程序中创建了一个自定义的404页面。你可以在你的pages目录下创建一个名为404.js(或404.tsx)的文件,并在其中编写你的自定义页面内容。在Next.j......
  • 助力鸿蒙生态建设|坚果派6位华为HDE以及若干成员喜获HarmonyOS专业证书
    助力鸿蒙生态建设|坚果派6位华为HDE以及若干成员喜获HarmonyOS专业证书2023年10月25日-27日,在华为开发者联盟的精心组织下,为期三天的鸿蒙生态师资培训营(以下简称“鸿蒙培训营”)上海站活动圆满落下帷幕。坚果派创始人坚果代表组织参加。这里坚果还有一个身份,就是江苏润开鸿数字科技有......
  • NodeJS系列(13)- Next.js 框架 (六) | Node.js + Next.js + Prisma/Sequelize (ORM) + M
    Next.js是一个用于构建Web应用程序的框架。Next.js是一个用于生产环境的React框架,是一个React服务端渲染应用框架。NextJS:https://nextjs.org/Prisma是一个基于promise的Node.js和TypeScript的ORM,目前支持Mysql,MariaDB,SQLite,PostgreSQL,AWSAuroraServerles......