溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

常用的垃圾回收算法有幾種

發(fā)布時間:2020-05-30 11:35:18 來源:億速云 閱讀:267 作者:鴿子 欄目:編程語言

常用四種垃圾回收算法

常用的垃圾回收算法有四種:標記-清除算法、復(fù)制算法、標記-整理算法、分代收集算法。

1.標記-清除算法

分為標記和清除兩個階段,首先標記出所有需要回收的對象,標記完成后統(tǒng)一回收所有被標記的對象,如下圖。

缺點:標記和清除兩個過程效率都不高;標記清除之后會產(chǎn)生大量不連續(xù)的內(nèi)存碎片。

2.復(fù)制算法

把內(nèi)存分為大小相等的兩塊,每次存儲只用其中一塊,當這一塊用完了,就把存活的對象全部復(fù)制到另一塊上,同時把使用過的這塊內(nèi)存空間全部清理掉,往復(fù)循環(huán),如下圖。

缺點:實際可使用的內(nèi)存空間縮小為原來的一半,比較適合。

3.標記-整理算法

先對可用的對象進行標記,然后所有被標記的對象向一段移動,最后清除可用對象邊界以外的內(nèi)存,如下圖。

4.分代收集算法

把堆內(nèi)存分為新生代和老年代,新生代又分為 Eden 區(qū)、From Survivor 和 To Survivor。一般新生代中的對象基本上都是朝生夕滅的,每次只有少量對象存活,因此采用復(fù)制算法,只需要復(fù)制那些少量存活的對象就可以完成垃圾收集;老年代中的對象存活率較高,就采用標記-清除和標記-整理算法來進行回收。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI