java - 使用 7mb RAM 的 Android FinalizerReference

标签 java android memory-leaks garbage-collection

我知道有 2-3 个主题与此有关,FinalizerReference 存在问题,但仍然没有很好地解释。我有一个关于这个类以及它的工作原理的问题。

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

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

据我所知,Java 对象已被释放,但“指针”保留在内存中,并且它们会在下一次 GC 中被清理(以及使用 GC 清理的普通对象,不对其进行引用)。

对我来说,这有点不对劲,因为如果我有大约 64 MB 的 RAM 可用于我的应用程序并且浪费了 10 MB - 肯定有问题。

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

这是来自 AppHeap 的屏幕截图: enter image description here

这是它的实例的屏幕:

enter image description here

这是我的内存监视器(它会保持这种形式 30 分钟):

enter image description here

此外,在“实例”面板中,有 50 个条目,其中约 5 个来 self 的代码和我使用的库。其余部分来自 Android - InputManagers、Parcels、Proxies 等。

编辑

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

最佳答案

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

尝试过:

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

所有这些都会导致 FinalizerReference 在空项目和非空项目上为自己保留 5-10 mbRAM

忽略这个问题,继续写代码。

关于java - 使用 7mb RAM 的 Android FinalizerReference,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40410777/

相关文章:

java - JScrollPane 中的 IntelliJ JTable

android - android 中 alertdialog 中可变数量的文本编辑?

android - Adb 安装失败 INSTALL_FAILED_VERSION_DOWNGRADE

c - 子进程中fork()后泄漏,为什么?

java - 打印已包含值的数组

java - 将 Java 连接到 PHP 进行多人游戏

java - 如何在 GWT 中将 ScrollHandler 绑定(bind)到 body 上?

java - 在 android.app.Application 中取消绑定(bind)服务

c++ - G++ 多平台内存泄漏检测工具

objective-c - NSImageView - 巨大的内存泄漏?