我有一个因 OutOfMemory 崩溃的应用程序。我将崩溃中的 phd 文件加载到 Eclipse 内存分析器中。我立即发现了一个相当可疑的 ArrayList,其中包含大约 5,700,000 个条目,每个条目都是一个内容为 16 个空字节(????)的字符串。注意:我没有检查所有条目,而是检查了一个较小的样本。
不出所料,我很感兴趣谁在坚持这样一个愚蠢的事情,所以我右键单击 ArrayList 并打开“GC Roots 路径”(所有引用或排除,它似乎没有区别) .
将打开一个新选项卡并仅显示一行,即 ArrayList,并附加了后缀“Unknown”。
所以我的问题就在标题中:为什么我看不到 GC 根?
涉及的各种版本的东西。
应用程序在一些 1.6 IBM JRE 上的 Websphere 8.x 上运行
Eclipse 内存分析器:版本 1.5.0
Java 诊断工具框架(用于加载 IBM 转储):1.10.0.201211161052