我有一个小的android应用程序,我尝试查找内存泄漏,所以我点击了“DumpJavaHeap”,列表中的第一个类是FinalizerReference(java.lang.ref)。它有500多个实例,每个实例都带有另一个FinalizerReference的“下一个”和“上一个”。我知道FinalizerReference来自实现Object.finalize()的对象,但我的应用程序中没有实现它的对象。我怎样才能找出为什么会发生这种泄漏并修复它? 最佳答案 有关您的问题的更多详细信息,请查看您的Finalizer的refere
我有一个小的android应用程序,我尝试查找内存泄漏,所以我点击了“DumpJavaHeap”,列表中的第一个类是FinalizerReference(java.lang.ref)。它有500多个实例,每个实例都带有另一个FinalizerReference的“下一个”和“上一个”。我知道FinalizerReference来自实现Object.finalize()的对象,但我的应用程序中没有实现它的对象。我怎样才能找出为什么会发生这种泄漏并修复它? 最佳答案 有关您的问题的更多详细信息,请查看您的Finalizer的refere
我知道有2-3个主题与此有关,FinalizerReference存在问题,但仍然没有很好地解释。我有一个关于这个类以及它的工作原理的问题。无论我在我的应用程序中做什么,FinalizerReference总是为自己保留5-10个RAM,我的问题是:这是我不必担心的正常行为吗?据我所知,Java对象已被释放,但“指针”保留在内存中,并且它们会在下一次GC中被清理(以及使用GC清理的普通对象,不对其进行引用)。对我来说,这有点不对劲,因为如果我有大约64MB的RAM可用于我的应用程序并且浪费了10MB-肯定有问题。我检查了所有内容,删除了所有泄漏,目前我的应用程序仅停留在18~mbRAM
当启动com.android.gallery3d并按返回键大约2000次时,我得到了java.lang.OutOfMemoryError异常。android4.0.4中com.android.gallery3d的dumpheap。使用MAT分析发现java.lang.ref.FinalizerReference被嵌套调用。什么可能导致这种嵌套调用?android.app.ContextImpl@0x418f8c98android.media.AudioManager@0x419495c8android.media.AudioManager$1@0x41949688java.lang.r