一
Smart Perf Host典型场景分析模板
目前已知Smart Perf Host场景分析模版提供整机CPU调度分析模板以及内存调优场景分析,在CPU调度分析模板中,可做到自动分析CPU调度数据,并协助发现CPU调度瓶颈。
具体操作过程首先开发者可选择左侧导航栏中的“模板抓取(Record Template)”,然后连接设备,选择调度分析模板,开始抓取操作;待抓取完成后,就可以通过导航栏中的Scheduling Analysis自动进行数据分析和显示。调度分析模板可以按照CPU粒度和线程粒度进行数据分析和展示。
通过CPU粒度分析,开发人员可用来查看即CPU资源在被哪些任务使用。相对应可快速分析以下场景:
CPU大中小核利用情况是否达到调优人员预期
CPU大中小核运行频点是否达到调优人员预期
谁在占用特定CPU的特定频点
大核高频的任务是否可以往中小核迁移,以降低能耗
功耗分析:Cpu idle值越大,睡眠越深,功耗越低
占用大、中、小核和总CPU的TOP线程是否为预期线程
当前调用CPU的线程和对应的进程情况
线程唤醒关系链
查看CPU频点供给情况
点选一个线程显示详情页(进程名、线程名、起始时间、时长、优先级、线程状态)
支持软硬件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 PerfHost能力规划中已支持近30个开发能力,25个能力正处于开发测试阶段,能力覆盖性能调优模板、工具系统能力、系统依赖以及用户体验提升。开发者还可通过代码染色系统进行代码覆盖率报告生成,执行上不但能沿用原有自测使用习惯无需更换环境,还可支持共享代码下载环境无需单独部署服务。从开发到调测工具都全面升级的HarmonyOS NEXT 正助力HarmonyOS应用生态正在开启一个新的阶段,构建繁荣的应用生态,还需更多开发者的加入。
更多推荐
全部0条评论
快来发表一下你的评论吧 !