在某些博客中,讀到Android中的GC發生在主(UI)線程中,這可能會在UI屏幕上產生遲滯,具體取決於GC執行的頻率。 因此,我想知道如果我手動釋放對象(通過分配空值)是否是一個好主意,這對我沒有用處。 這樣我們可以避免在應用程序中多次執行GC。避免多個垃圾回收執行
請分享您的想法。 謝謝, sku
在某些博客中,讀到Android中的GC發生在主(UI)線程中,這可能會在UI屏幕上產生遲滯,具體取決於GC執行的頻率。 因此,我想知道如果我手動釋放對象(通過分配空值)是否是一個好主意,這對我沒有用處。 這樣我們可以避免在應用程序中多次執行GC。避免多個垃圾回收執行
請分享您的想法。 謝謝, sku
釋放(取消引用)對象,你沒有進一步的使用總是一個好主意。您還可以使用SoftReference
,WeakReference
和/或WeakHashMap
來幫助GC獲取您不介意的東西,如果系統需要空間。
有更多關於Android的氣相色譜系統here的信息。
沒有「手動釋放對象」這樣的東西 - 至少不以任何方式對GC有意義。一個對象不會立即被釋放/收集/當你失去對它的所有引用時;它只是變得合格收集。 GC是實際釋放對象的原因,當它覺得這樣做的時候它是這樣做的。
保持GC工作如此艱難的唯一方法是創建更少的對象,特別是臨時對象。少垃圾==少收集。