Android FinalizerReference使用7mb的RAM

17 java android garbage-collection memory-leaks

我知道有关于这个的2-3个主题,有问题FinalizerReference,但它仍然没有得到很好的解释.我有一个关于这个课程的问题,以及它的工作原理.

无论我在我的应用程序中做什么,FinalizerReference总是保持5-10 RAM为自己,我的问题是:

这是一种我不必担心的正常行为吗?

据我所知,Java对象被释放,但是"指针"保留在内存中,并且使用下一个GC清理它们(以及使用GC清理的普通对象,而不参考它).

对我来说,这有点不对,因为如果我有大约64 MB的RAM用于我的应用程序而10mb被浪费 - 那一定有问题.

我检查了一切,删除了我所有的泄漏,目前我的应用程序只停留在18~mb RAM(7 RAM - 图形,2 RAM - 对象).其余的 - FinalizerReference; /

这是AppHeap的截图: 在此输入图像描述

这是一个来自它实例的屏幕:

在此输入图像描述

这是我的记忆监视器(它保持这种形式30分钟):

在此输入图像描述

此外,在"实例"面板中,有50个条目,包括我使用的代码和库中的~5个.其余的来自Android - InputManagers,Parcels,Proxies等.

编辑

这发生在Galaxy S5上.在Android模拟器上,我从FinalizerReference得到~2MB

小智 5

我没有解决问题,但是得到了建议,我应该检查一个空项目。

尝试过:

  • Android Studio Windows x32
  • Android Studio Windows x64
  • IntelliJIDEA x32
  • IntelliJIDEA x64

所有这些原因FinalizerReference,以保持5-10 mb的RAM本身,对空和非空的项目。

只需忽略该问题并继续编写代码即可。