跟踪从我自己的类创建的对象

时间:2018-11-06 13:41:37

标签: eclipse eclipse-plugin profiling profiler jprofiler

我有一个扩展日食产品的应用程序。如果让它超时运行,则RAM使用量会增加到最大堆空间。

该应用程序不执行任何操作,只是停留在后台。我运行了JProfiler,然后在Live Memory部分中,通过按下Mark current按钮标记了当前对象。查看Difference列,创建了数百个对象(char,HashMap,LinkedHashSet等)。

JProfiler中是否有一个功能可以让我查看是否从我的一个类中分配了对象(例如,从类型为com.example.mypackage.*的类中分配了A型对象)?

这将有助于查看我是否引起了内存泄漏,或者是否必须向其他人填写错误报告。

我愿意接受提供这种功能的其他探查器建议。

1 个答案:

答案 0 :(得分:1)

在JProfiler中,分配记录正是用于此目的。首先,请确保会话设置中的调用树过滤器仅包含您自己的程序包。

然后转到“实时内存->分配调用树”并记录分配。在呼叫树中,您可以看到累积的呼叫堆栈以及有关分配的信息。从主菜单中调用“查看->分析->显示类别”以显示为每个节点分配的特定类别。您还可以选择特定的类或程序包,并有选择地显示分配树。

有一个关联的“分配热点”视图,向您显示分配最多的呼叫堆栈。如果您只想查看自己的班级,请在右上角的“热点选项”选择器中选择“添加到呼叫班级”。