避免多个垃圾收集执行

时间:2011-09-15 03:28:13

标签: java android memory-leaks garbage-collection

在一些博客中读到Android中的GC发生在主(UI)线程上,这可能会在UI屏幕上产生缓慢,具体取决于GC执行的频率。 因此,我想知道如果我手动释放对象(通过指定空值)这对我来说是没有用的,这将是一个好主意。 这样我们可以避免在应用程序中多次执行GC。

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

2 个答案:

答案 0 :(得分:1)

没有“手动释放对象”这样的东西 - 至少对GC没有任何意义。当您丢失对它的所有引用时,对象不会立即被释放/收集/无论如何;它只是符合条件的收集。 GC实际上是对象的释放,当它感觉就像这样做。

保持GC不那么努力的唯一真正方法是创建更少的对象,特别是临时对象。减少垃圾==少收集。

答案 1 :(得分:0)

释放(解除引用)您没有进一步使用的对象总是一个好主意。您还可以使用SoftReferenceWeakReference和/或WeakHashMap来帮助GC提取您不介意的内容,如果系统需要空间的话。

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