【问题标题】:Android - is this a memory leak?Android - 这是内存泄漏吗?
【发布时间】:2016-05-14 18:39:06
【问题描述】:

我已经构建了一种机制,用于观察对象何时通过弱引用被垃圾收集。每隔几秒,它就会记录所有已传递给它且不为空的对象。

我这样做是为了观察某个活动的上下文何时变为空,以确保那里没有内存泄漏。

因此,使用此工具时,我注意到当我回击并完成活动时,活动的上下文不会被取消。如果我从设备监视器引起 GC,或者如果我浏览其他活动,它最终会被收集垃圾。

我认为应该立即取消它。这是否构成内存泄漏还是我应该担心的事情?

【问题讨论】:

  • 不,那可能是因为它被移动到内存缓存中,所以每当需要这个内存空间时,GC 就会收集它并删除它以腾出更多空间。
  • Leakcanary 非常好用且易于使用的库,可用于查找此类问题。
  • 这看起来很有趣...我会试试的。
  • +1 表示 LeakCanary。我已经使用了很长时间,它是一个非常好的库,它的核心与您的建议相同

标签: android memory-leaks garbage-collection


【解决方案1】:

查看内存监视器,并在浏览应用程序时查看freeallocated 图表。您会看到allocated 图表有时会减小,最常见的情况是它接近或超过free 图表的顶部时。这就是垃圾收集发生的时候。

我认为应该立即取消它。这是否构成内存泄漏还是我应该担心的事情?

所以不,它不应该立即无效,而只能在启动 GC 时。

【讨论】:

    猜你喜欢
    • 2011-02-20
    • 2013-08-12
    • 2013-01-08
    • 2013-11-12
    • 2015-05-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多