在快照比较中找到特定的实例

时间:2018-08-06 15:17:18

标签: jprofiler

假设我已经捕获了2个正在运行的VM的hprof快照:

jmap -dump:format=b,file=a.hprof <pid>
jmap -dump:format=b,file=b.hprof <pid>

现在,快照已被截取得足够近,以确保它们之间根本没有垃圾收集(甚至是次要的垃圾收集)。

我已经在JProfiler中用比较快照打开了2个,并且有+26,911个java.lang.String实例。

我的问题是:如何查看其中某些字符串的字符内容?由于快照来自同一JVM,因此查看字符串值是什么,将为我提供有关其来源的信息。

在VisualVM中,您可以选择“在实例视图中显示”,它允许您查看500个组中的所有实例,但是我希望在JProfiler中获得更高级的功能,该功能允许您列出b中多余的26,911个实例.hprof(即使处于参考级别,因此,即使有GC,并且有东西在四处移动,它仍会被报告为多余,但这没关系)。

1 个答案:

答案 0 :(得分:0)

  

我希望在JProfiler中获得更高级的功能,使您可以列出b.hprof中额外的26,911个实例

无法比较不同HPROF快照中实例的身份。

如果使用JProfiler堆转储,则可以简单地使用标记堆操作,然后在以后进行堆快照,标题区域将显示一个操作,以选择新实例作为新对象集:

enter image description here