时间线
时间线 窗口用于可视化和选择对分析有意义的线程和时间间隔。

窗口由以下部分组成:
流程概览  – 应用程序活动和事件的概览图。
线程图  – 线程活动图。
流程概览
进程概览 图表可视化了与被分析应用程序相关的活动和重要事件。 使用图表确定并选择对分析有意义的时间间隔,例如高 CPU 负载、长时间阻塞 GC 间隔和 UI 冻结间隔。

时间轴概览
使用概览评估 CPU 利用率,并快速在 进程概览 和 线程 图表中导航:
点击概览中的任意位置以选择可见的时间范围。 范围大小会自动定义。
拖动滑块选择可见的时间范围。
移动滑块边缘以更改其大小。
使用左侧的缩放滑块缩放 进程概览 和 线程 图表。
阻塞垃圾回收
发生阻塞垃圾回收(GC)的时间间隔。 执行阻塞 GC 时,CLR 会挂起所有托管线程。 有关 GC 分析的更多信息,请参阅 垃圾回收事件。
UI 冻结
用户界面未响应的时间间隔。 更具体地说,这些是窗口消息未被处理超过 200 毫秒或特定消息的处理时间超过 200 毫秒的时间间隔。
过滤的时间间隔
通过应用过滤器选择的时间间隔。
线程图
线程 图表可视化了线程活动和过滤后的时间间隔(如果已应用过滤器)。 使用图表选择对分析有意义的线程和时间间隔。

图表为每个线程显示以下数据:
ID | 线程标识符。 |
类型 | 线程名称(仅对托管线程显示)或线程类型(如果线程没有名称)。 dotTrace 区分以下线程类型:
|
毫秒 / MB / 事件 | 过滤后的时间/分配的内存/事件数量。 例如,如果选择了 未选择 事件且未应用其他过滤器,则这将是整个线程的生命周期。 例如,如果您在 线程状态 过滤器中选择了 正在等待 ,则此时间将是所有 正在等待 时间间隔的总和。 |
% | 过滤后的时间/分配的内存/事件数量相对于 所有选定时间间隔/分配的内存/事件数量的百分比。 |
线程活动时间轴 | 时间轴区分三种线程状态:运行、等待、就绪(对应于 线程状态过滤器)。 应用任何过滤器后,时间轴将突出显示过滤后的时间间隔或点事件。 线程时间轴还可以在智能工具提示中显示特定时间点的活动详细信息。 要查看工具提示,请将鼠标悬停在特定时间点上。 工具提示是上下文相关的,并根据选定的过滤器显示附加数据。 ![]() |
选择线程
选择特定线程
点击所需的线程。
选择线程后,将应用 线程 过滤器。 所有其他过滤器将仅显示所选线程的数据。
在某些情况下,选择特定类型的所有线程可能会很方便。
按类型选择线程
打开属于您要选择的类型的任何线程的上下文菜单。
在上下文菜单中,选择 选择所有<Type_Name>线程。
隐藏线程
为简化分析,您可以隐藏当前不感兴趣的线程(例如,在选定的时间间隔内未执行任何工作)。
隐藏特定线程
打开您想要隐藏的线程的上下文菜单。
在上下文菜单中,选择 隐藏线程#<ID>。
隐藏(未)选择的线程
选择线程。
在上下文菜单中,选择 隐藏选定的线程 或 隐藏未选定的线程。
按类型隐藏线程
打开属于您要隐藏的类型的任何线程的上下文菜单。
在上下文菜单中,选择 隐藏所有<Type_Name>线程。
排序线程
默认情况下,线程列表按其创建顺序排序。 通过点击列标题,您可以按其他条件对线程进行排序: ID、 类型、 毫秒 / MB / 事件、 %。 当前用于排序的列以
标记。
在某些情况下,无论排序顺序如何,将某个线程置于列表顶部可能会很方便。 使用线程上下文菜单中的 移至顶部 选项将任何线程移至顶部。
选择时间间隔
选择任意时间间隔
按住鼠标左键拖动到所需的时间间隔。
选择时间间隔后,将应用 选定的时间间隔 过滤器。 所有其他过滤器将仅显示此时间范围的数据。

使用此功能分析对分析有意义的时间间隔。 例如,确定 CPU 负载达到最大时执行的方法。
您还可以使用图表快速选择 UI 冻结间隔。
选择 UI 冻结时间间隔
点击特定的 UI 冻结以选择冻结时间间隔和相应的 UI 线程。 有关冻结分析的更多信息,请参阅 时间间隔过滤器 | UI 冻结过滤器。
选择 UI 冻结时间间隔后,将应用冻结时间间隔和 UI 线程的过滤器。 所有其他过滤器将仅显示 UI 线程和选定时间间隔的数据。

缩放图表
放大/缩小图表
执行以下操作之一:
使用鼠标滚轮。
按 Ctrl + 按住鼠标左键拖动。
缩放图表后,将应用 可见的时间间隔 过滤器。 所有其他过滤器将仅显示当前可见范围的数据。
如果在图表上选择了时间间隔,您可以放大到该间隔。
放大到选定的时间间隔
按 Ctrl + O 或在上下文菜单中选择 缩放到选区。
之后,选定的时间范围将占据整个图表。
平移图表
按住鼠标右键拖动。
