鸿蒙性能优化:Concurrency并行并发分析
·
鸿蒙开发中,并行并发是提升应用性能的重要手段。任务池(TaskPool)为应用程序提供多线程运行环境,降低资源消耗并提高系统整体性能。DevEco Profiler的Concurrency场景分析能力,帮助分析Task的生命周期、吞吐量、耗时等性能问题。
一、Concurrency功能介绍
1.1 支持的并发模型
| 并发模型 | 说明 |
|---|---|
| TaskPool | 任务池并发模型 |
| FFRT | 基于任务的并发编程框架 |
| Async NAPI | NAPI异步调用 |
| Async ArkTS | ArkTS异步调用 |
1.2 支持的泳道
| 泳道 | 说明 |
|---|---|
| FFRT | FFRT并发任务(本文介绍) |
| TaskPool | 任务池并发任务(本文介绍) |
| Async NAPI | NAPI异步调用(本文介绍) |
| Async ArkTS | ArkTS异步调用(本文介绍) |
| ArkTS Callstack | ArkTS调用栈分析 |
| Callstack | Native调用栈分析 |
| Process | 进程分析 |
二、查看Task统计信息
2.1 筛选进程
选择展开某个泳道,用options下拉框筛选不同进程。
2.2 查看统计信息
框选子泳道中某段时间范围,详情区会出现该时段内,泳道对应执行状态下,并行并发任务的统计信息。
点击Task Name的跳转按钮可跳转到对应的Task泳道。
三、查看某一个Task的所有状态
3.1 操作方式
选择展开某个泳道,用options下拉框筛选不同进程。框选子泳道中某段时间范围,可以看到该Task在框选时间范围内的任务状态。
3.2 跳转查看详情
点击Task Name的跳转按钮可跳转到对应线程的泳道,可查看在该Task执行时间范围内,trace文件的打点信息,反映的是线程该时段内的函数执行情况。
3.3 单独查看异步调用
| 操作 | 说明 |
|---|---|
| 展开Async ArkTS泳道 | 单独查看ArkTS异步调用任务详情 |
| 展开Async NAPI泳道 | 单独查看NAPI异步调用任务详情 |
四、查看Task的某个状态
点击Task子泳道的某个执行节点,Details详情区里会出现task在该状态下的详细信息。
五、Concurrency调优流程
创建Concurrency会话
↓
选择泳道(FFRT/TaskPool/Async NAPI/Async ArkTS)
↓
用options下拉框筛选进程
↓
框选关注时间段 → 查看统计信息
↓
(可选)点击跳转按钮查看Task泳道
↓
点击具体执行节点 → 查看状态详情
↓
(可选)展开Async ArkTS/NAPI单独查看异步调用
鸿蒙Concurrency模板通过FFRT、TaskPool、Async NAPI、Async ArkTS泳道展示并行并发任务,支持按进程筛选(options下拉框),框选时间段查看Task统计信息,点击跳转按钮查看对应Task泳道或线程trace打点,点击执行节点查看状态详情,帮助分析Task生命周期、吞吐量和耗时等问题。
更多推荐




所有评论(0)