在数据区域,DevEco Profiler提供了对性能数据的可视化呈现结果。由于每个场景化模板所提供的可视化能力各不相同,本章节对所有模板的通用能力展开介绍。

整个数据区可以分为五个区域:
① 工具控制栏:提供标记、收藏、离线符号导入、泳道过滤、泳道启动配置项等功能的管理以及会话状态和时间轴的控制能力。
:标记列表按钮,点击后可以看到当前已放置的所有标记。可以查看/跳转到标记描述、标记时间点,支持修改标记的颜色。
:收藏泳道的隐藏/折叠按钮,激活后会隐藏/折叠收藏的泳道,置灰时展示收藏的泳道。
:离线符号导入按钮,点击后可以导入带有调试符号表的Native库,对应的Native函数栈符号将被还原。
:泳道筛选按钮,点击可选择泳道进行过滤。筛选无需录制的泳道,可以降低数据采集本身的开销,但同时会造成数据分析维度的减少。
:泳道启动配置项,点击后展示不同泳道对应的插件启动配置信息。支持将配置信息保存到配置文件,后续使用该类型模板默认生效当前配置。
② 时间轴:提供横向时间轴,用于显示数据时间戳。
③ 标记栏:用于放置标记,能够帮助开发者标记时间点或时间段。
④ 泳道区:泳道图区域。每个场景化模板都会预置一系列泳道(例如上图的“Frame”便是一个泳道)。泳道是整个DevEco Profiler工具内,数据组织的最小独立单元,用于剖析应用某一特定维度的运行数据,每个场景化模板均是由一系列泳道组成,每个泳道都会呈现某一维度的性能数据。开发者可以查看数据随时间变化的特征,发现数据异常的时间段,支持框选时间段后在详情面板查看对应的细节。
⑤ 详情区:展示详细的数据细节。开发者在泳道区域选择数据之后,以各类表格的形式呈现该时间段内各项详细数据。More面板将对左侧详情区中选中数据进行补充描述。
DevEco Profiler工具提供了各种丰富的时间轴操作功能:

:数据全量展示按钮,点击后时间轴尺度自动调整,将展示会话完整时间范围内的数据。
:时间轴调整按钮(快捷键为W或使用Ctrl+鼠标滚轮),点击后时间轴所展示的时长将变小,更多数据细节会呈现。
:时间轴调整按钮(快捷键为S或使用Ctrl+鼠标滚轮),点击后时间轴所展示的时长将变大,更易于观测整体数据趋势。
拖动泳道区域下方的滑条(快捷键为A/D或使用Shift+鼠标滚轮),开发者可以调整时间轴所示的时间范围;拖动泳道右侧滑条(或者滑动鼠标滚轮),可以调整泳道上下滚动。具体快捷键使用方式请参见快捷键。
仅在已激活的泳道区域可以使用快捷键操作(泳道区域中存在亮蓝色的选中边框即为激活状态)。
当开发者在泳道区域观察到可疑数据后,便可以通过框选或者点选的方式,将相关详细数据展示到详情面板中。泳道中条块状的数据支持点选查看,在泳道区域鼠标点击拖动再释放完成框选。可以在框选的同时按住Alt键,完成框选后时间轴尺度将会自动适应,整个框选时段会充满整个泳道区域,方便聚焦观察被选择的时段。
由于不同的泳道会展示不同维度的数据,因此详情面板展示的数据是来自于泳道区域中被选择的泳道单元。被选中的泳道单元会呈现蓝色,与其他泳道单元有明显差异。此外,当开发者直接选中泳道单元,而未进行框选或点选时,详情面板中会展示整个泳道单元的完整详细数据(效果等同于完整框选该泳道单元)。
为了便于开发者记录分析出的关键时间点,DevEco Profiler工具提供了标记功能供开发者使用。DevEco Profiler支持两种时间标记:
(快捷键为M,颜色可自定义)。
添加时间段起始标记(快捷键为Shift+M,颜色可自定义),如下图所示。
标记放置完成后,可以通过双击标记按钮,在弹出的标记属性框中修改标记的描述和颜色信息,或者删除标记。

通过快捷键“Ctrl+, ”向前选中单个标记,“Ctrl+. ”向后选中单个标记;“Ctrl+[ ”向前选中时间段的标记,“Ctrl+]”向后选中时间段时间标记。
此外,工具还提供了查看不同标记之间时间差的能力,只需要先选中一个标记,再将鼠标悬浮在其他标记点上,便可在面板右下角
后看到被悬浮的标记点和被选择的标记点的时间差。借助这个能力,开发者能够快速获知一些特定时刻的时间差,这对于分析时间敏感的性能问题尤其有用。
在使用工具分析,可能会遇到泳道过多,导致想分析的泳道单元间隔过远、分析低效的情况,使用收藏功能,可以帮助开发者将关注的泳道单元提拉到泳道区域的顶端。将鼠标悬停在想要收藏的泳道单元之上,出现收藏图标
,点击该按钮即可完成收藏。

再次点击该按钮则取消收藏。此外,由于顶部区域空间有限,工具还提供了压缩泳道的能力,点击泳道中
图标,可以将收藏的泳道进行折叠。

如果收藏的是父泳道,且泳道标题展示不完整,当鼠标悬浮到泳道标题区,会提示该泳道的泳道标题信息。
如果收藏的是子泳道,当鼠标悬浮到收藏的子泳道标题区,会提示该泳道的父泳道和子泳道标题信息。

为了帮助开发者迅速查找关心的性能数据,DevEco Profiler工具提供了全局搜索功能。


或者
按钮,向前向后查看搜索结果,泳道区域会自动跳转到对应的结果位置并为开发者选中该结果,详情面板中会自动刷新出相应详细数据。
为便于开发者分析Native的函数热点,工具提供了符号导入的能力,开发者可以点击工具控制栏的
按钮,选择带有调试信息的so库导入,之后工具会利用此信息,将采集到的函数偏移信息转换为对应的源码符号(包括系统so库、用户自编译的so库、三方库)。

找到问题源码是调优过程中最为关键的一环。针对详情面板中所展示的函数栈帧信息(如下图所示),双击栈帧节点,工具便会在编辑器中打开相关源码文件,并定位到对应行号。此功能正常使用的前提是用于抓取性能数据的应用,是在DevEco Studio的当前工程开发编译,且相关源文件位置并未改变。
