JProfiler帮助文档

遥测


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

标准遥测

在JProfiler UI的"VM遥测"部分,默认记录了一些遥测数据。 对于交互式会话,它们始终处于启用状态,你不必启动或停止其记录。

要想在同一时间轴上比较多个遥测,概览中通过可配置行高显示了多个小比例的遥测。点击遥测标题可激活完整遥测视图。

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

探针也会发布遥测信息。这些遥测不包括在"遥测"视图部分,而是相应探针的"遥测"标签部分。 这些遥测的记录与其父探针的记录相结合。

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

书签

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

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

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

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

自定义遥测

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

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

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

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

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

自定义遥测按照配置顺序显示在"遥测"部分的最后。

开销考虑

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

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