跟踪我自己创建的对象 类
Track objects created from my own classes
我有一个扩展 eclipse 产品的应用程序。让它 运行 超时,RAM 使用量增加到最大堆 space。
应用程序不执行任何操作,它只是停留在后台。我 运行 JProfiler
,然后在 Live Memory
部分,我通过按 Mark current
按钮标记当前对象。查看 Difference
列,创建了数百个对象(char、HashMap、LinkedHashSet 等)。
JProfiler
中是否有一项功能允许我查看对象是否是从我的 类 之一分配的(例如,类型 A 的对象是从 类 分配的模式com.example.mypackage.*
)?
这有助于查看是否是我造成了内存泄漏,或者我是否必须向其他人提交错误报告。
我愿意接受任何其他提供此类功能的分析器建议。
在 JProfiler 中,分配记录正是用于此目的。首先,确保会话设置中的调用树过滤器只包含您自己的包。
然后转到"Live Memory->Allocation Call Tree"并记录分配。在调用树中,您可以看到带有分配信息的累积调用堆栈。从主菜单调用 "View->Analyze->Show classes" 以显示为每个节点分配的特定 classes。您还可以 select 一个特定的 class 或打包并 select 灵活地显示分配树。
有一个关联的 "Allocation hot spots" 视图向您显示分配最多的调用堆栈。如果您只想查看自己的 classes,请在右上角的 "Hot spot options" 选择器中 select "Add to calling class"。
我有一个扩展 eclipse 产品的应用程序。让它 运行 超时,RAM 使用量增加到最大堆 space。
应用程序不执行任何操作,它只是停留在后台。我 运行 JProfiler
,然后在 Live Memory
部分,我通过按 Mark current
按钮标记当前对象。查看 Difference
列,创建了数百个对象(char、HashMap、LinkedHashSet 等)。
JProfiler
中是否有一项功能允许我查看对象是否是从我的 类 之一分配的(例如,类型 A 的对象是从 类 分配的模式com.example.mypackage.*
)?
这有助于查看是否是我造成了内存泄漏,或者我是否必须向其他人提交错误报告。
我愿意接受任何其他提供此类功能的分析器建议。
在 JProfiler 中,分配记录正是用于此目的。首先,确保会话设置中的调用树过滤器只包含您自己的包。
然后转到"Live Memory->Allocation Call Tree"并记录分配。在调用树中,您可以看到带有分配信息的累积调用堆栈。从主菜单调用 "View->Analyze->Show classes" 以显示为每个节点分配的特定 classes。您还可以 select 一个特定的 class 或打包并 select 灵活地显示分配树。
有一个关联的 "Allocation hot spots" 视图向您显示分配最多的调用堆栈。如果您只想查看自己的 classes,请在右上角的 "Hot spot options" 选择器中 select "Add to calling class"。