我怎样才能弄清楚是什么在固定着未被挤压的物体上?
我们的一个程序有时会在一个用户的计算机上出现错误,但当然不是在我测试它时。我刚刚使用JProfiler运行它(在10天的评估许可证上,因为我以前从未使用过它),并根据我们的代码前缀进行过滤,总大小和实例数量的最大块是特定简单类的8000多个实例。OutOfMemory
我点击了JProfiler上的“垃圾收集”按钮,我们其他类的大多数实例都消失了,但这些特定的实例却没有。我再次运行测试,仍然在同一实例中,它创建了4000多个类的实例,但是当我单击“垃圾回收”时,这些实例消失了,留下了8000多个原始实例。
这些实例确实会在各个阶段卡入各种集合中。我假设它们没有被垃圾回收的事实一定意味着某些东西保留了对其中一个集合的引用,因此保留了对对象的引用。
任何建议,我如何弄清楚什么是坚持参考?我正在寻找在代码中寻找什么的建议,以及如果有的话,在JProfiler中找出答案的方法。