当前位置: 首页 > news >正文

鸿蒙中Profiler的使用

Web浏览器中长这个样子

鸿蒙中长这个样子

DevEco Profiler是一款由HarmonyOS提供的性能分析工具,主要用于对应用在真实设备上的运行情况进行实时监测和分析。以下是关于DevEco Profiler的一些关键信息:

  1. 设备支持 :DevEco Profiler工具仅支持对已通过USB连接的真机设备进行调优分析,不支持模拟器调优。这意味着如果你想使用DevEco Profiler来进行性能分析,你需要将真机通过USB连接到你的开发电脑。

  2. 系统版本要求 :DevEco Profiler要求macOS 12及以上系统版本。确保你的操作系统满足这一要求,以便能正常使用该工具。

  3. 快速启动提示 :在DevEco Profiler界面中,你可以使用“/”快捷键来展示全量快捷键说明信息。这可以帮助你更高效地使用该工具。

  4. 功能示例 :DevEco Profiler可以用来进行网络问题的调优。例如,在应用运行过程中,你可以查看HTTP协议栈的网络信息,包括请求分段耗时以及请求具体内容。这使得网络问题的诊断变得更加直接和有效。

  5. 配置修改 :如果你需要延长性能监控的录制时间,可以在系统用户目录下的配置文件config.json5中修改CpuPlaceholderUnitV101字段下的restrainedDuration的值(单位:秒)。这样就可以根据需要调整录制时间的长短。

使用方式

  1. 您可以通过如下三种方式打开DevEco Profiler:

    • 在DevEco Studio顶部菜单栏中选择“View -> Tool Windows -> Profiler”。
    • 在DevEco Studio底部工具栏中单击“Profiler”。
    • 使用“Ctrl+Shift+A”(macOS中为双击“Shift”)打开搜索功能,搜索“Profiler”。有可能热键会被占用变成截图  笑
  2. 在设备上启动您想要监测的应用。
  3. 在DevEco Profiler界面左上角的设备、应用及进程列表中,选择调优设备及待调优的应用/元服务进程。如果您的应用不止有一个主进程(还存在Extension或者Render进程),那么您需要再手动选择一个您想要监控的进程。

实时监控应用,多维度对比识别性能热区

在实时监控界面,设备各项资源的使用情况均以泳道图的形式在时间维度展示,提供系统事件、CPU占用等多维度信息,帮助您识别性能热区。

面板整体介绍

  • 界面左侧为实时数据展示区域,该区域的数据显示了每一项监测内容的瞬时值,并通过饼图或者仪表盘的形式让您更加直观地观察到各项数据的使用占比以及具体数值。
  • 界面右侧则是各项数据随着时间推移的变化趋势,通过不同的图像形式(直方图、柱状图、折线图等)来更加清晰的展示某一项资源在一段时间范围内的变化趋势,以帮助您快速判断性能热点区域。

整个实时监控页面从上到下,依次展示了系统事件、异常事件、前台应用、CPU占用、内存占用、帧率、GPU使用率、温度、电流、能耗以及网络流量消耗等各个维度的数据,帮助您从多个维度来对比识别当前应用的性能热区。下面为您依次介绍每一条泳道的数据内容。

泳道简介

  1. System Events泳道:该泳道展示了时间窗内系统事件的起始、终止等状态的统计情况。泳道内存在三种形状的标识:
    • 菱形:表示事件开始。
    • 正方形:表示事件结束。
    • 圆形:表示当前为时间点事件,无持续时间。
  2. Anomaly泳道:用于展示设备侧上报的各种异常事件。
  1. Foreground Ability泳道:用于展示应用/元服务的Ability状态。当Ability在前台运行时,会在此时间段内显示该Ability的名称;若当前无前台运行的Ability,则此时间段内显示“Background”。
  2. CPU泳道:左侧饼图展示了当前时刻应用/元服务的CPU使用率、其他进程的CPU使用率以及空闲情况。右侧的泳道图则展示了时间窗内的整体CPU使用情况,其中灰色的部分代表系统中其他进程的CPU占用,蓝色部分则展示了当前应用/元服务的CPU占用情况。
  1. Memory泳道:左侧饼图展示了当前时刻应用/元服务的内存占用、其他进程的内存占用以及未使用的内存。右侧的泳道图则展示了时间窗内的整体内存使用情况,其中灰色的部分代表系统中其他进程的内存占用,蓝色部分则展示了当前应用/元服务的内存占用情况。

    说明

    当前应用内存展示的是应用的PSS值,如需内存详细信息请参考Native内存泄漏分析:Allocation分析。此处的PSS值比hidumper略大,原因是hidumper计算过程中会执行取整操作,计算值偏小。

  2. FPS泳道:左侧仪表盘展示了当前设备屏幕的帧率瞬时值,红色、黄色、绿色区域则代表当前屏幕帧率是否达标理想状态。右侧柱状图则展示了每一次采集设备帧率时的数值。该泳道仅支持在配备硬件屏幕的设备上进行数据采集。
  1. GPU泳道:左侧仪表盘展示了当前设备GPU使用率的瞬时值,右侧泳道则展示了时间窗内的整体GPU使用率。
  2. Temperature泳道:左侧温度计显示了当前设备温度信息,右侧泳道的数据采集周期为3秒,展示了时间窗内的设备温度信息以及温度等级。该泳道暂不支持在TV/2in1/Car设备上进行应用性能分析。
  1. *Device Current泳道:左侧展示了当前设备最大电流、平均电流以及最新的电流值,右侧泳道则展示了时间窗内的设备电流信息。该泳道统计电池的电流会由于充放电导致电流为非准确的消耗值,使用*Device Current进行区分,若需要准确的消耗电流,可以在设备侧打开"关闭充电",操作方式为设置 > 系统 > 开发者选项。该泳道暂不支持在TV设备上进行应用性能分析。
  2. Energy泳道:该泳道包含了各项部件(包括CPU、*Display、GPU、Location、Camera、Bluetooth、Flashlight、Audio、Wifi、Modem)的周期内平均功耗占比。通过图例上方的下拉多选框则可以勾选您想要监控的功耗使用情况的应用,选择多个应用后,该泳道会展示所有您所选择应用的功耗总和。右侧区域柱状图则展示了时间窗内各部件资源的实时使用情况,柱状图的颜色代表每种部件的功耗占比。Display指标只能测量不同亮度的屏幕电流,无法精确测量不同明暗色的显示电流,为提示开发者,使用*Display来突出该差异。该泳道暂不支持在TV设备上进行应用性能分析。暂不支持展示Wearable设备GPU、Location、Camera、Flashlight的功耗占比情况。2in1设备暂不支持展示Location的功耗占比情况。
  1. Network Traffic泳道:左侧区域内仪表盘展示了当前设备网络上行瞬时速率和下行瞬时速率,仪表盘右边展示了时间窗内上行总流量和下行总流量。右侧泳道柱状图则展示了时间窗内网络流量消耗的实时情况。

说明

FPS、GPU、Temperature、*Device Current泳道显示的是所使用设备的实时信息,而非当前调优应用/元服务的信息。

实时监控页面的常用操作交互方式

实时监控页面除了展示各个维度数据的瞬时值以及时间窗内的变化趋势之外,还提供了多种交互方式以供您更加便捷、快速、细致地分析您的数据。

  • 启停控制

    点击会话区“Realtime Monitor”页签上的 开始图标

    按钮或工具控制栏上的   暂停图标

    来即时控制实时监控界面的录制状态。

  • 泳道筛选

    点击工具控制栏上的 筛选图标

    按钮,可以选择泳道进行筛选。筛选无需录制的泳道,可以降低数据采集本身的开销,但同时会造成数据分析维度的减少。

  • 详细数据展示

    将鼠标悬浮于所关心的泳道数据上时,界面上会出现当前时间点的时间标线以及含有当前时间点上泳道详细数据的Tooltips。更进一步,当您将鼠标悬浮于时间轴上时,实时监控页面内的所有泳道均会以Tooltips展示出该时刻的数据。

  • 图例选择

    实时监控界面部分泳道内的图例均支持选择/反选来增加/去除泳道内这一数据的展示,能够更加专注地分析所关心的数据。

至此,通过分析实时监控的多维度数据,可以了解到当前应用的具体运行情况以及可能出现性能问题的热点区域。接下来,可以通过深度录制详细的应用运行数据来更加详细地分析应用可能存在的性能问题。

鸿蒙官方班级

http://www.dtcms.com/a/341361.html

相关文章:

  • STM32学习笔记16-SPI硬件控制
  • MySQL 语法基础入门:从零开始掌握数据库操作
  • CoreShop微信小程序商城框架开启多租户-添加一个WPF客户端以便进行本地操作(5)
  • 读《精益数据分析》:规模化(Scale)—— 复制成功,进军新市场
  • VMware Workstation | 安装Ubuntu18.04.5
  • 波纹干涩 shader
  • 零知开源——基于STM32F103RBT6与ADXL362三轴加速度计的体感迷宫游戏设计与实现
  • 【Unity3D优化】平衡 Hide 与 Destroy:基于性能等级与 LRU 的 UI 管理策略与实践思考
  • PostgreSQL Certified Master 专访 | 第四期 贾桂军
  • 【Techlog】01入门-井筒数据整合软件的基本认识
  • 控制器调用服务层出现Cannot invoke ... 显示服务层bean对象为null
  • PostgreSQL 流程---更新
  • 编程语言学习
  • 环境搭建:centos7+docker+Oracle
  • 【datawhale组队学习】RAG技术 - TASK02
  • 3dmax 材质 / AO 通道渲染全流程
  • 3D检测笔记:相机模型与坐标变换
  • 超大型公共场所的智慧守护者——人脸动态识别与管理系统
  • 手机截图如何优雅地放在word里
  • 从原理到应用:GPS 定位技术的核心机制与未来发展
  • 心路历程-了解网络相关知识
  • 耐达讯自动化Profibus转光纤技术如何让称重传感器“零误差“运转?
  • 初始推荐系统
  • sed 命令的使用
  • Linux软件编程:总结
  • C++26反射机制:一场语言范式的革命
  • GEO公司推荐TOP5榜单:解析其数据架构与安全保障体系
  • C++智能指针详解:告别内存泄漏,拥抱安全高效
  • 如何用Python打造PubMed API客户端:科研文献检索自动化实践
  • Nginx 的完整配置文件结构、配置语法以及模块详解