鸿蒙 使用Profiler性能调优(二)
·

上篇文章中介绍了实时监控用于性能问题定界。当发现性能问题后,需要精确定位问题根因。DevEco Profiler提供了多种场景化分析模板,针对不同性能问题场景进行深度分析。
一、深度录制
| 模板 | 用途 |
|---|---|
| Frame | 分析应用/元服务的卡顿丢帧原因 |
| Launch | 分析应用/元服务的启动耗时,识别启动瓶颈 |
| Snapshot | 拍摄ArkTS堆内存快照,分析单个或多个快照差异,定位ArkTS内存问题 |
| Allocation | 分析内存资源占用情况,提供内存实例分配的调用栈记录 |
| ArkUI | 定位组件耗时、页面布局、状态变量更新导致的卡顿 |
| ComMemory | 定位UI组件内存占用情况 |
| Energy | 分析应用/元服务的能耗异常 |
| ArkWeb | 定位web应用加载和丢帧问题 |
| Network | 定位http协议栈网络信息诊断,网络请求分段耗时分析 |
| Concurrency | 显示并行并发应用实际运行情况,帮助优化并行并发代码 |
| GPU | 识别GPU利用率低及图形/计算工作负载性能瓶颈 |
| Time | 改进函数执行效率,完整展现ArkTS到Native跨语言调用栈 |
| CPU | 深度采集CPU内核数据,展示CPU使用率、各核心调度信息、线程状态及Trace信息 |
二、操作步骤
2.1 打开Profiler并选择设备
| 操作 | 说明 |
|---|---|
| 选择设备 | 在设备列表中选择调优设备 |
| 选择进程 | 在进程列表中选择要调测的应用(可正在运行或已安装未启动) |
| 选择模板 | 在主界面新建任务区域,单击要创建的场景调优分析任务类型 |
2.2 创建会话
选择场景模板后,点击"Create Session"创建会话。
2.3 配置并确认会话环境
| 操作 | 说明 |
|---|---|
| 泳道选择 | 录制前点击图标指定要录制的泳道 |
| 录制选项 | 工具控制栏图标提供功能提示,各泳道区域下拉框可调整录制功能 |
2.4 启动录制
点击任务窗口左上角或左侧任务列表的录制图标启动录制。
录制状态变化:
initializing → recording
注意:录制过程中不能再点击其他模板进行操作,如需录制其他模板需结束本次录制重新选择。
2.5 停止录制
在调优设备上操作APP复现性能劣化场景后,点击停止按钮。
数据解析状态变化:
analyzing → rendering
说明:解析过程可能包含大量数据,请耐心等待解析完成。
常见问题
若录制结束后,某些泳道(如ArkTS Callstack、Callstack等)显示No Data,在泳道名称处将光标悬浮于三角告警图标处,查看泳道报错的原因。
三、各场景模板说明
| 模板 | 分析内容 | 适用场景 |
|---|---|---|
| Frame | 卡顿丢帧原因 | 界面卡顿、滑动不流畅 |
| Launch | 启动耗时各阶段 | 应用启动慢 |
| Snapshot | ArkTS堆内存快照差异 | 内存泄漏、内存增长 |
| Allocation | 内存分配调用栈 | 内存占用过高 |
| ArkUI | 组件耗时、布局、状态变量 | UI卡顿、渲染慢 |
| ComMemory | UI组件内存占用 | 组件内存优化 |
| Energy | 能耗异常 | 耗电快、发热 |
| ArkWeb | web加载和丢帧 | WebView性能 |
| Network | 网络请求分段耗时 | 网络慢、请求超时 |
| Concurrency | 并行并发运行情况 | 多线程/协程优化 |
| GPU | GPU利用率和瓶颈 | 图形渲染慢 |
| Time | 函数执行效率、跨语言调用栈 | 函数级性能优化 |
| CPU | CPU内核数据、调度信息 | CPU占用高、线程调度问题 |
更多推荐




所有评论(0)