垃圾(GC)收集算法

GC的三種主要算法

  • 標記-清除
  • 複製
  • 標記-整理

1.標記-清除
基本思路:算法分爲標記和清除兩個階段, 首先標記所有要回收的對象,然後在清除階段統一回收。
標記-清除算法

優缺點:
1. 效率問題,標記清除階段效率都不高。
2. 空間問題,清除後產生大量不連續的內存碎片,不利於大對象內存的分配

2.複製
基本思路:將內存分爲大小相等的兩塊,只使用其中的一塊,當這塊內存用完了,就把這塊上存活的對象複製到另一塊, 然後將已滿的那塊一次性清理掉。
複製算法

優缺點:
1. 實現簡單,運行高效
2. 可使用空間爲原來一半,空間犧牲太大

3.標記-整理
基本思路: 先標記出可回收內存,然後讓所有存活的對象都向一段移動, 然後直接清理掉邊界以外的內存。
標記-整理

* 優缺點:*
1.不適用與可回收內存較多,頻繁的情況

所有的方法都其優劣之處,針對不同的情況和需求,選擇最合適的方法。

發佈了25 篇原創文章 · 獲贊 5 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章