JProfiler帮助文档

遥测


分析的一个方面是随时间监控标量测量,例如,使用的堆大小。 在JProfiler中,这种数据图被称为遥测。 观察遥测可以让你更好地理解分析的软件,你可以通过不同的测量关联重要事件,如果注意到有异常的行为, 可能会促使你使用JProfiler中的其他视图进行更深入的分析。

标准遥测

在JProfiler UI的"VM遥测"部分,默认记录一些遥测。 对于交互式会话,它们始终处于启用状态。 有些遥测要求记录一些特殊类型的数据,在这种情况下,遥测中会显示一个记录操作。

要想在同一时间轴上比较多个遥测,概览中通过可配置行高显示了多个小比例的遥测。点击遥测标题可激活完整遥测视图。 视图中遥测的顺序可能不是你想要的,例如,你可能想要将选定遥测并排对比。在这种情况下,你可以在视图中拖拽它们重新排序。

完整视图会显示一个带有当前值的图例,可能比概览中可以看到的选项更多。 例如,"内存"遥测允许你选择单个内存池。

JProfiler有大量探针,这些探针可以记录JVM中高级系统和重要框架中的事件。 探针的遥测显示在相应的探针视图中。如果要将这些遥测与系统遥测进行比较,你可以将选定的遥测添加到顶层(top-level)遥测部分。 在工具栏中,选择 添加遥测→探针遥测 然后选择一个或多个探针遥测。

每个添加的遥测,在遥测部分都会有它自己的视图,也会在概览中显示。

一旦一个探针被添加,只有记录了探针数据,数据才会被显示。如果没有,遥测描述中包含了一个开始记录的内嵌按钮。

探针遥测的上下文菜单除了一些记录操作,还有一个显示相应探针视图的操作。

类似于探针视图,记录的对象的VM遥测依赖于内存记录,也有一个记录按钮和一个类似的上下文菜单。

最后,还有一些"跟踪"遥测,可以监控在另一个视图中选择的标量值。 例如,类跟踪器视图允许你选择一个类,并监控随时间推移其实例数的变化。 此外,每个探针都有一个监控选定热点或控制对象的"跟踪器"视图。

书签

JProfiler维护着一个在所有遥测中显示的书签列表。 在交互式会话中,你可以在当前时间通过点击添加书签工具栏按钮 或使用上下文菜单中的在此添加书签功能来添加书签。。

书签不仅可以手动创建,还可以通过记录动作自动添加,以指示特定记录的开始和结束。 通过触发器操作或控制器API,你可以以编程方式添加书签。

书签有颜色、线条样式,还有显示在工具提示中的名称。你可以编辑现有的书签并更改这些属性。

如果在遥测中右键点击多个书签太不方便,可以使用菜单中分析→编辑书签操作,会显示一个标签列表, 这里你也可以将书签导出为HTML或CSV。

自定义遥测

有两种方式你可以添加自己的遥测:可以在JProfiler UI中写一个脚本来提供一个数值,或者选择一个数值MBean属性。

要添加自定义遥测,请单击配置遥测工具栏按钮,该按钮在"遥测"部分可以看到。 在脚本遥测中,你可以访问当前JProfiler会话的类路径中配置的所有类。 如果一个值不能直接使用,在你的应用程序中添加一个静态方法,你可以在这个脚本中调用。

上面的例子显示了对一个平台MBean的调用。用MBean遥测来绘制MBeans的标量值更方便。 在这里,一个MBean浏览器允许你选择一个合适的属性。属性值必须是数值。

你可以将几条遥测线捆绑到一个遥测。这就是为什么配置分为两部分:遥测本身和遥测线。 在遥测线中,你只需编辑数据源和行标题,在遥测线中,你可以配置单位、刻度和应用于所有包含的测线的堆叠。

在堆叠遥测中,累积单条遥测线,可以显示面积图。刻度因子对于将一个值转换为支持的单位很有用。 例如,如果数据源报告的是kB,问题是JProfiler中没有匹配的"kB"单位。 如果你将刻度因子设置为-3,则值将被转换为字节,通过选择"字节"作为遥测的单位,JProfiler将自动在遥测中显示适当的合计单位。

自定义遥测按照它们被配置的顺序添加在"遥测"部分的最后。 要想对它们重新排序,在视图中将其拖拽到想要的位置。

开销考虑

乍一看,遥测似乎会随着时间的推移而线性地消耗内存。然而,JProfiler合并旧值,并使它们逐渐变得更粗粒度,以限制每个遥测所消耗的内存总量。

遥测的CPU开销受限于它们的值每秒只被轮询一次。 对于标准遥测,这种数据收集没有额外的开销。 对于自定义遥测,开销由底层脚本或MBean控制。