Java 内存泄漏-调试器和内存分析器不一致

Java 内存泄漏-调试器和内存分析器不一致,java,android,eclipse,memory-management,memory-leaks,Java,Android,Eclipse,Memory Management,Memory Leaks,在我的android游戏中有一个内存泄漏——我已经设法将它缩小到某个对象,该对象有一个要在纹理上渲染的对象列表。但这个对象每次绘制时都会清除列表,所以我无法确定它是如何在列表中获得数千个元素的 我在调试器中进行了检查,但调试器没有这么多元素——通常是2-20个元素,这是我所期望的。。。只有当我打开纹理渲染时,游戏的速度才会逐渐变慢 以下是内存分析器的图片,显示6111项: 以下是调试器的图片,显示了2: 有人能帮我找出哪里出了问题吗?看起来你可以调用System.gc();尝试让垃圾收集器发

在我的android游戏中有一个内存泄漏——我已经设法将它缩小到某个对象,该对象有一个要在纹理上渲染的对象列表。但这个对象每次绘制时都会清除列表,所以我无法确定它是如何在列表中获得数千个元素的

我在调试器中进行了检查,但调试器没有这么多元素——通常是2-20个元素,这是我所期望的。。。只有当我打开纹理渲染时,游戏的速度才会逐渐变慢

以下是内存分析器的图片,显示6111项:

以下是调试器的图片,显示了2:


有人能帮我找出哪里出了问题吗?

看起来你可以调用System.gc();尝试让垃圾收集器发挥其魔力。试一试。

你确定GC不仅仅是暂时保留这些吗?可能是。。。我会尽力看看它是否会被清除point@Joe正如我对teh1的评论所说的,如果这些引用已经准备好被清除,它们就不会出现在默认的EclipseMat解析中。如果您遵循解析日志,您将看到在某个时刻它将删除不可访问的对象。假设OP在没有-keep_unreachable_对象的情况下运行解析,情况并非如此。要不是他,那些推荐人就不会出现了。gc()只会将标记的数据清理到gc