Java 通过FinalizerReference可能存在内存泄漏

Java 通过FinalizerReference可能存在内存泄漏,java,android,memory-leaks,Java,Android,Memory Leaks,我有一个小的android应用程序,我试图寻找内存泄漏,所以我点击了“转储Java堆”,列表中的第一个类是FinalizerReference(Java.lang.ref)。它有500多个实例,每个实例都有一个到另一个FinalizerReference的“next”和“prev” 我知道FinalizerReference来自实现Object.finalize()的对象,但我的应用程序中没有实现它的对象。我怎样才能找出泄漏发生的原因并修复它 有关问题的更多详细信息,请查看终结器的referen

我有一个小的android应用程序,我试图寻找内存泄漏,所以我点击了“转储Java堆”,列表中的第一个类是FinalizerReference(Java.lang.ref)。它有500多个实例,每个实例都有一个到另一个FinalizerReference的“next”和“prev”

我知道FinalizerReference来自实现Object.finalize()的对象,但我的应用程序中没有实现它的对象。我怎样才能找出泄漏发生的原因并修复它


有关问题的更多详细信息,请查看
终结器的referent字段。
终结器对象只是扩展了
Reference
s,因此您可以调查内容。它将为您提供有关终结对象的信息

根据内容,您将有新的潜在客户。挂起对象的终结过程可能非常长。由于您只有一个线程处理所有这些任务,因此您可能无法完成更多的任务


干杯

您的应用程序中可能没有涉及FinalizerReference的内存泄漏,尽管Android内存分析器使它看起来像是存在的

我对类似问题的担忧使我确信,在FinalizerReference的情况下,Profiler会对相同的少量内存执行大量的多次计数,因此保留内存的报告值是无意义的,有时甚至是无意义的


在您的情况下,~38kB的浅层大小很重要,但很小,而~40MB的保留内存应该被忽略。

您是否遇到内存不足错误,或者您只是怀疑FinalizerReference实例可能会导致内存泄漏?@1615903只是怀疑..@EJP这是一种奇怪的方法。。不要测试你的应用程序是否存在潜在的内存泄漏。@amitooshacham你发现问题了吗?我面临的正是这个问题!可能重复的