1484543d1Sopenharmony_ciFFRT Trace工具包,目前包含两类工具:
2484543d1Sopenharmony_ci## 1、trace复原工具
3484543d1Sopenharmony_ci主要针对因为ffrt改造,导致原线程/任务的trace被拆分打散在各个ffrt线程上的可视化问题。
4484543d1Sopenharmony_ci
5484543d1Sopenharmony_ci此工具的脚本:
6484543d1Sopenharmony_ci- ffrt_trace_recover.py
7484543d1Sopenharmony_ci
8484543d1Sopenharmony_ci使用方法:
9484543d1Sopenharmony_ci~~~
10484543d1Sopenharmony_ci# 使用脚本复原trace,会在输入文件同目录下复原一个以_ffrt_recover后缀的新文件
11484543d1Sopenharmony_cipython3 ffrt_trace_recover.py -f in_trace.ftrace
12484543d1Sopenharmony_ci~~~
13484543d1Sopenharmony_ci
14484543d1Sopenharmony_ci## 2、trace分析工具
15484543d1Sopenharmony_ci主要包含分析内容:线程运行信息分析、task生命周期分析、task状态计数统计
16484543d1Sopenharmony_ci
17484543d1Sopenharmony_ci此工具的脚本:
18484543d1Sopenharmony_ci- ffrt_trace_process.py,分析脚本
19484543d1Sopenharmony_ci- ffrt_trace_process_gui.pyw,可视化界面
20484543d1Sopenharmony_ci
21484543d1Sopenharmony_ci使用方法:
22484543d1Sopenharmony_ci
23484543d1Sopenharmony_ci1)ffrt_trace_process.py的输入参数为两个
24484543d1Sopenharmony_ci- --file或-f,必需,输入的trace文件路径
25484543d1Sopenharmony_ci- --pid或-p,可选,指定处理的进程号(默认处理第一个ffrt相关进程)
26484543d1Sopenharmony_ci
27484543d1Sopenharmony_ci执行示例如下:
28484543d1Sopenharmony_ci~~~
29484543d1Sopenharmony_cipython3 ffrt_trace_process.py --file in_trace.ftrace
30484543d1Sopenharmony_ci~~~
31484543d1Sopenharmony_ci
32484543d1Sopenharmony_ci脚本会将处理结果保存在文件同级目录下,以"_result"结尾的文件夹内,解析结果包含:
33484543d1Sopenharmony_ci- 任务生命周期统计:task_info.csv
34484543d1Sopenharmony_ci- 线程运行信息统计:thread-name.txt
35484543d1Sopenharmony_ci- 进程级信息统计:summary.txt
36484543d1Sopenharmony_ci- 优化后的trace文件,内部增加了task状态计数统计,用于perfetto可视化
37484543d1Sopenharmony_ci
38484543d1Sopenharmony_ci2)ffrt_trace_process_gui.pyw用户界面使用
39484543d1Sopenharmony_ci
40484543d1Sopenharmony_ci本地环境中配置python3,可以直接双击ffrt_trace_process_gui.pyw执行,提供可视化操作界面。
41484543d1Sopenharmony_ci
42484543d1Sopenharmony_ci~~~
43484543d1Sopenharmony_ci1)点击选择trace文件
44484543d1Sopenharmony_ci
45484543d1Sopenharmony_ci2)进程id下拉列表中,选择进程号进行解析:
46484543d1Sopenharmony_ci- 如果工具检测到使用FFRT的进程,那么下拉列表只展示FFRT相关进程
47484543d1Sopenharmony_ci- 如果工具没有检测到FFRT相关进程,那么下拉列表中会展示所有进程
48484543d1Sopenharmony_ci
49484543d1Sopenharmony_ci3)解析完成后,线程id下拉列表可选择查看线程级信息,任务id下拉列表可选择查看任务级信息:
50484543d1Sopenharmony_ci- 线程级信息目前提供running时间、线程切换分类
51484543d1Sopenharmony_ci- 任务级信息目前提供任务的生命周期信息
52484543d1Sopenharmony_ci
53484543d1Sopenharmony_ci4)保存解析结果,保存目录同ffrt_trace_process.py脚本一致
54484543d1Sopenharmony_ci~~~