1fb726d48Sopenharmony_ci# TaskPool 抓取和展示说明
2fb726d48Sopenharmony_ci
3fb726d48Sopenharmony_ciTaskPool 分析模块主要展示应用程序使用 taskpool 时,任务的关联关系,任务调度开销和任务并发度分析情况,任务各阶段耗时情况,线程池的状态统计,队列任务数,任务是否超时。
4fb726d48Sopenharmony_ci
5fb726d48Sopenharmony_ci## TaskPool 的抓取
6fb726d48Sopenharmony_ci
7fb726d48Sopenharmony_ci#### TaskPool 的抓取配置参数
8fb726d48Sopenharmony_ci
9fb726d48Sopenharmony_ci打开 Task pool 开关抓取 taskpool 数据。
10fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Taskpool/taskpoolconfig.jpg)
11fb726d48Sopenharmony_ci
12fb726d48Sopenharmony_ci### TaskPool 展示说明
13fb726d48Sopenharmony_ci
14fb726d48Sopenharmony_ci将抓取的 taskpool 文件导入到 smartperf 中,查看任务的关联关系等信息。
15fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Taskpool/taskpoolrow.jpg)
16fb726d48Sopenharmony_ci
17fb726d48Sopenharmony_ci### TaskPool 的任务关联关系跟踪
18fb726d48Sopenharmony_ci
19fb726d48Sopenharmony_ci任务关联关系就是根据任务的 executeId,把一个 taskpool 任务的各个执行的函数调用栈连接起来,用于表示一个任务从开始分发到执行,再到最后任务结束的整个过程。
20fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Taskpool/taskpoolrelation.jpg)
21fb726d48Sopenharmony_ci如上图所示,点击 H:Task Perform: taskId : 2, executeId : 2 的调用栈会出现红色连线,红色连线展示了 executeId 是 2 的任务的关联关系,连接的调用栈分别是:
22fb726d48Sopenharmony_ci
23fb726d48Sopenharmony_ci-     H:Task Allocation: taskId : 2, executeId : 2, priority : 1, executeState : 1:任务分发。
24fb726d48Sopenharmony_ci-     H:Task Perform: taskId : 2, executeId : 2:任务执行。
25fb726d48Sopenharmony_ci-     H:Task PerformTask End: taskId : 2, executeId : 2, performResult : Successful:任务返回。
26fb726d48Sopenharmony_ci
27fb726d48Sopenharmony_ci### TaskPool 的并发度
28fb726d48Sopenharmony_ci
29fb726d48Sopenharmony_ci点选或者框选任务状态为执行会进行任务并发度展示,如图所示并发度是 3。
30fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Taskpool/taskpoolconcurrency.jpg)
31fb726d48Sopenharmony_ci
32fb726d48Sopenharmony_ci### TaskPool 泳道图的点选功能
33fb726d48Sopenharmony_ci
34fb726d48Sopenharmony_ci点选 taskpool 的 Slice,展示该 taskpool 信息的 tab 页。
35fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Taskpool/taskpoolselect.jpg)
36fb726d48Sopenharmony_ci
37fb726d48Sopenharmony_ci-     Name: 任务调用栈名称。
38fb726d48Sopenharmony_ci-     StartTime: 任务调用栈开始时间。
39fb726d48Sopenharmony_ci-     Duration:任务调用栈持续时间。
40fb726d48Sopenharmony_ci-     depth:调用栈层级。
41fb726d48Sopenharmony_ci
42fb726d48Sopenharmony_ci### TaskPool 泳道图的框选功能
43fb726d48Sopenharmony_ci
44fb726d48Sopenharmony_ci框选 taskpool 的泳道图,展示 Frames 的 tab 页。
45fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Taskpool/taskpooldrag.jpg)
46fb726d48Sopenharmony_ci
47fb726d48Sopenharmony_ci-     Execute Id: 任务id。
48fb726d48Sopenharmony_ci-     Task Priority: 任务优先级(HIGH,MEDIUM,LOW)。
49fb726d48Sopenharmony_ci-     Scheduling Time(ms):调度耗时(任务执行起始时间 - 任务分发起始时间)。
50fb726d48Sopenharmony_ci-     Execution Time(ms):执行耗时(任务执行的duration)。
51fb726d48Sopenharmony_ci-     Return Time(ms):返回耗时(任务返回的结束时间 – 任务执行的结束时间)。
52fb726d48Sopenharmony_ci
53fb726d48Sopenharmony_ci### TaskPool 的队列任务数和线程池里线程状态统计
54fb726d48Sopenharmony_ci
55fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Taskpool/taskpoolnum.jpg)
56fb726d48Sopenharmony_ci如上图,H:threadNum,H:runningThreadNum,H:idleThreadNum,H:timeoutThreadNum 是线程池里线程状态统计,H:taskNum 是队列任务数。
57fb726d48Sopenharmony_ci
58fb726d48Sopenharmony_ci### TaskPool 的任务超时退出
59fb726d48Sopenharmony_ci
60fb726d48Sopenharmony_ci在带有 H:Thread Timeout Exit 的调用栈的泳道图会采用黄色圆圈,中间为白色反叹号标记,代表任务超时退出。
61fb726d48Sopenharmony_ci![GitHub Logo](../../figures/Taskpool/taskpoolexit.jpg)
62