宁德北京网站建设,网站维护需要的知识,东莞建网站公司排名,线上营销的方式在软件开发的过程中#xff0c;很多开发者都经常会遇到一些性能问题#xff0c;比如应用启动慢、点击滑动卡顿、应用后台被杀等#xff0c;想要解决这些问题势必需要收集大量系统数据。而在收集数据的过程中#xff0c;开发者则需要在各种工具和命令之间来回切换#xff0…在软件开发的过程中很多开发者都经常会遇到一些性能问题比如应用启动慢、点击滑动卡顿、应用后台被杀等想要解决这些问题势必需要收集大量系统数据。而在收集数据的过程中开发者则需要在各种工具和命令之间来回切换不但容易错过问题发生时间点数据收集完如何能将信息有效结合分析又将是一件复杂的工作。基于开发痛点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 线程是否为预期线程
● 关键线程比如 UIRS 等大中小核和频点的使用情况是否为预期调度策略 若测试人员关注 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 应用生态正在开启一个新的阶段构建繁荣的应用生态还需更多开发者的加入。