12

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

profiling_with_visualvm_part_1

profiling_with_visualvm_part_2

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

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

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

如果我的问题不清楚,请告诉我,我会尝试进一步澄清。

4

1 回答 1

4

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

于 2013-09-10T16:13:09.060 回答