如何通过查看visualVM中的内存分析器结果来查找罪魁祸首类/对象

时间:2013-09-09 17:52:50

标签: java profiling profiler visualvm

我使用VisualVM分析我的Java应用程序 我已经完成了

profiling_with_visualvm_part_1

profiling_with_visualvm_part_2

当我看到内存配置文件结果时,我看到数百万Objects[]Char[]String和其他此类基本对象已创建,这些对象占用了所有内存。 我想知道哪些类(或我的代码)实际上负责创建 Objects[]String等,到目前为止我找不到它。一旦我知道了罪魁祸首,我就可以深入研究代码并修复它。

我放了一个过滤器com.mypackage.*,但是我发现它们比Objects[]Char[]String的总大小要小许多倍(有时是0字节)对象。

我相信,应该有办法找到罪魁祸首的代码。否则,分析器将没有多大用处。

如果我的问题不明确,请告诉我,我会进一步澄清。

1 个答案:

答案 0 :(得分:2)

如果要查看哪些代码分配了这些实例,请转到“内存设置”并启用“记录分配堆栈跟踪”。 “记录分配堆栈跟踪”选项已解释为'Profiling with VisualVM part 2'。打开它后,对应用程序进行概要分析,拍摄分析结果的快照。在快照中右键单击特定类并调用“显示分配堆栈跟踪”。