【问题标题】:Avoiding multiple Garbage Collection execution避免多次垃圾收集执行
【发布时间】:2011-09-15 03:28:12
【问题描述】:

在一些博客中读到,Android 中的 GC 发生在主(UI)线程上,这可能会根据 GC 执行的频率在 UI 屏幕上造成迟缓。 因此,我想知道如果我手动释放对我没有进一步用途的对象(通过分配空值)是否是个好主意。 这样我们可以避免在应用程序中多次执行 GC。

请分享您的想法。 谢谢, sku

【问题讨论】:

    标签: java android memory-leaks garbage-collection


    【解决方案1】:

    没有“手动释放对象”之类的东西——至少对 GC 没有任何意义。当你失去对它的所有引用时,一个对象不会立即被释放/收集/无论如何;它只是变得有资格收集。 GC 是真正释放对象的行为,它会在想这样做的时候这样做。

    让 GC 不那么辛苦的唯一真正方法是创建更少的对象,尤其是临时对象。更少的垃圾 == 更少的收集。

    【讨论】:

      【解决方案2】:

      释放(取消引用)您不再使用的对象总是一个好主意。如果系统需要空间,您还可以使用SoftReferenceWeakReference 和/或WeakHashMap 来帮助 GC 拾取您不介意离开的东西。

      还有更多关于Android GC系统here的信息。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-03-15
        • 1970-01-01
        • 1970-01-01
        • 2021-12-26
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多