![]() 上一页 |
![]() 下一页 |
事件图形是一个线性图表,用于以图形方式显示在范围导航器中指定的时段内使用的所有正在运行的线程。此外,还可以在此图形上显示线程转换。还可以向操作集添加单个线程并显示垃圾收集期间发生的事件。本主题包括以下部分:
创建线程时,可以将其与一个线程组相关联;例如,主线程组、池式线程组和队列线程组。通常,打开“图形”选项卡时,事件图形仅显示线程组,而不显示单个线程,如下所示:
要查看单个线程,请单击线程组名称旁边的加号 (+):
要隐藏单个线程,请单击线程组名称旁边的减号 (-)。
事件图形使用颜色编码来显示线程中发生的事件;例如,在图表上,每个线程显示为一条较宽的水平线,该水平线通常为多色并在其最右侧有一个标签,如下所示:
线的每个彩色部分均表示一个不同的事件,事件的类型将基于与事件类型浏览器中的事件关联的色卡。例如,在以下线程中:
绿色段表示 Java 应用程序。
黄色段标识 Java 等待事件。
蓝色段标识套接字读事件。
因此,在此示例表示的运行时时段内,此单个线程中发生了五次 Java 等待事件和一个套接字读事件。
要查看有关特定事件的更多详细资料,请将鼠标指针放在该事件 (由表示线程的线上的彩色段指示) 的上方以显示说明该事件的工具提示。虽然显示的事件信息取决于具体事件,但通常工具提示会显示诸如事件的开始和结束时间、事件的持续时间、发生该事件的线程的 ID、发生该事件的内存地址和导致该事件的方法调用的堆栈跟踪以及特定于该事件的属性 (例如,“线程归位”事件的工具提示还可能标识将线程归位的类和对线程取消归位的线程) 等信息。
每个线程右侧的标签标识并说明了该线程。有些标签太长,不便于显示在图形中,因此被截断。要查看整个标签,请将鼠标指针置于标签上方以显示工具提示。除了线程名称外,工具提示还显示以下信息:
线程的开始和结束时间和日期
线程运行的时间长度 (持续时间)
线程 ID
可以使用以下过程来更改截断的标签的格式:
要选择标签格式,请执行以下操作:
将鼠标指针置于图形上的任意位置并右键单击。
此时将显示具有两条命令的上下文菜单。
突出显示标签格式。
此时将显示上下文子菜单,其中显示可用格式。
选择要使用的标签格式。
注: 还可以通过放大图形来显示标签的全文,如“在事件图形上放大线程”中所述。 |
可以使用上下文菜单执行以下操作来定制事件图形:
更改每列的排序顺序。请参阅“更改表列的排序顺序”。
通过从可用列列表中选择来选择要显示的数据。请参阅“选择要在表中显示的列”。
复制要粘贴到其他位置 (例如,文本编辑器) 的所选线程,并配置数据在剪贴板上的存储方式。请参阅将数据复制到剪贴板。
向操作集添加线程和从操作集中删除线程。请参阅“将事件图形与操作集结合使用”。
在事件图形上,可以向操作集添加特定线程或从操作集中删除特定线程以仅比较这些线程中发生的事件。此功能可从“操作集”上下文子菜单访问,它与飞行记录器其他选项卡上提供的功能类似。
要在事件图形上仅显示操作集中的线程,请执行以下操作:
可以通过在图形的右上方选中只显示操作集,在事件图形上只显示操作集中的那些线程。选中此复选框时,只有已添加到操作集中的那些线程才会显示在事件图形中。
尽管事件图形不显示与垃圾收集关联的特定线程,但您可以查看垃圾收集期间发生的事件。默认情况下,打开“图形”选项卡时,事件图形上仅显示线程组。要查看垃圾收集期间发生的事件,请选择显示 GC。此时将在图形的顶部显示一条标记为“垃圾收集”的新线:
如果应用程序具有大量线程或发生了大量事件,则事件图形可能会很复杂且难于读取。可以使用事件图形右下角的滑块来放大图形:
要放大或缩小事件图形,请将鼠标指针放在滑块柄上以将其向上移动 (放大) 或向下移动 (缩小)。表示线程的线将变宽 (放大时) 或变窄 (缩小时)。您还将看到线程标签不再被截断。
可以将线程复制到剪贴板以便于粘贴到其他应用程序中。还可以配置副本以便于读取或限制复制的信息量。
要配置线程并将线程复制到剪贴板,请使用以下过程:
选择要复制的线程。如果要选择一组线程,请执行以下操作之一:
要选择一组相邻的线程,请右键单击要选择的第一个线程,按住 Shift 键,然后单击要选择的最后一个线程。
要选择不相邻的线程,请按住 Ctrl 键,然后右键单击每个要包括的线程。
右键单击表中的任何位置以打开上下文菜单,然后选择剪贴板设置。此时将打开后续子菜单,在该子菜单中列出了配置选项。
选择要使用的选项,如表 6–33 中所述。
对于每个要使用的配置选项,重复执行步骤 2 和 3。
右键单击表中的任何位置以打开上下文菜单,然后选择复制。