JFR事件浏览器
事件浏览器显示,一个JFR快照中记录的所有事件。
JFR将事件类型组织成分层类别,构成事件浏览器左侧的树状结构。你可以选择一种事件类型,展示所记录的事件。 默认情况下,JProfiler会显示所有注册(registered)的事件类型,即使这些事件类型下没有记录任何事件。 或者,你可以在视图设置对话框中选择隐藏空的事件类别。
JFR事件
事件在主表格中按行显示,而列的内容取决于在树状结构中选择的事件类型。
默认情况下,表格中的事件按照发生的时间顺序排序。为了避免UI过载,表格中只显示前10000个事件。而底部的分析数据总是基于所有 事件计算出来的。如果你设置了一个过滤器,它也是检查过滤所有事件,而不仅仅是前10000个。这意味者,如果设置了一个过滤器,表格中 有些事件是在之前没有被显示过的。
你也可以选择多个事件类型或整个分类。在这种情况下,所有选定事件的并集会被显示在表格中。由于每个事件类型有它自己的这些列, 所以只会包含,所有选定事件类型所共有的,那些列。
可用分析(analyses)的数量可能会减少,因为分析(analyses)视图是根据可用列添加的。
列宽会根据其实际内容自动调整,除非你稍后手动调整。然后,相同内容类型的列的宽度将一直固定在你选定的宽度,不会再自动改变,直到 你在视图设置对话框中清除列宽。对于带有时间或内存等单位的列,每个单元格中值得刻度会被自动计算出来。如果为了更方便比较,你想要 固定,某列的值使用某种刻度,视图设置对话框为每个这样的列提供了一个选项。在这种情况下,该设置会为每个选定的事件类型分别保存。
有多种过滤事件的方式。在表格的顶部,有一个过滤选择器允许你过滤所有文本列,或者选择一个单独的列,然后配置一个匹配该列类型 的过滤器。
另一种过滤的方式是,选择一个感兴趣的行,然后使用上下文菜单,根据选定行中的值,选择一个具体的过滤器。顶部的过滤选择器会被 调整,显示你的选择。现在,你可以选择另一个值,并再次添加过滤器,然后它会替换相同列之前的过滤器。通常,每个过滤器类型只 可以出现一次,再次设置相同过滤器会替换之前的过滤器。
堆栈跟踪
在JProfiler,所选事件的堆栈跟踪,可以在事件表格下方的拆分窗口(pane)的“选择”选项卡中看到。
如果你选择了多个事件,这个选择选项卡会变成一个视图,向你显示,根据选定事件的堆栈跟踪计算出来的热点,或累积调用树。
默认情况下,事件计数决定,调用树和热点视图中节点上的百分比。某些事件类型包括其他适用于此目的的测量值,例如,持续时间或 分配的内存。如果有此类测量值可用,你可以从选择选项卡中的第二个下拉列表中选择它们作为热点类型
在下方拆分窗口(pane)中的“热点”和“调用树”视图中包含相同视图,然而它们是从快照中的所有事件中计算出来的。和选择选项卡 类似,它们也有一个“热点类型”下拉列表。除了显示所有事件,你也可以从这些视图中选择一个过滤器。在调用树视图中,选择一个 具体调用堆栈,然后点击筛选所选按钮,上方表格中将仅显示具有该堆栈的事件。对于特点视图,你可以选择顶层的热点 或回溯跟踪中的任何节点,这样只会显示,其堆栈跟踪以对选定节点的反向调用堆栈片段结束的事件。
在上边的截图中,你可以看到回溯跟踪中的一个节点被选为过滤节点。除了常规的调用树图标,还包含一个对勾。你可以通过顶部的标签, 或移除过滤器按钮来移除过滤器。表格中的事件计数与所选节点上的数字相等。热点树仍然显示所有事件,不考虑 热点视图中设置的过滤器。
这是一个从分析视图中设置的过滤器的通用特性:分析视图本身是基于所有经过过滤的事件计算出来的,但是不包括在分析视图中设置的过滤器 这让分析视图更加有用,因为你可以看到你已经选择了总事件集的哪一部分。
时间线视图
所有JFR事件类型都和时间相关,因此每个事件类型或一组事件类型都有一个时间线视图,时间线视图显示了事件的时间顺序分布。
为了聚焦于某个特定时间范围,你可以沿着时间轴拖拽。在上边的例子中,我们现在有两个过滤器:热点的回溯跟踪的过滤器, 和时间线视图的过滤器。同样,时间线视图依然显示整个时间范围,而其他分析视图现在将仅显示来自所选时间范围的事件。
默认显示模式是对数(logarithmic),这样事件计数低的区域仍可与事件计数高的区域对比显示。你可以通过取消,时间线下方的 log按钮,切换到线性模式。默认情况下,根据可用宽度显示整个时间范围,但是你可以切换到可变时间范围,然后像 JProfiler中其他遥测那样,缩放和滚动。还有一个书签可以使用,你可以在选定时间范围内添加垂直标记。以这种方式,你可以 在不同事件类型之间比较不同时间点。
直方图视图
所有可以对多个事件求和的测量值,例如,持续时间和分配大小,都会以特殊方式处理:首先,事件表格中这些测量的列,在底部有一个总和值。 第二,调用树和热点分析视图提供了一个“热点类型”下拉列表,通过这些测量值而不是事件计数来计算出他们的树状结构。最后,为每个这样的测量 生成一个直方图分析,被添加到下方的拆分窗口中。
直方图,竖轴显示事件计数,横轴显示选定的测量,测量被分为多个箱体,以便可以计算分布。箱体多少和事件计数可以从工具提示中获取。
上面的截图展示了,如何在直方图中设置一个过滤器。就像其他分析视图中那样,过滤器只会应用到其他分析视图,整个直方图依然会被显示。 和时间线视图一样,默认,直方图有一个对数(logarithmic)垂直轴。在这里,截图中选择的事件在使用线性(linear)轴时可能不会显示。