java java gc中為什么復(fù)制算法比標(biāo)記整理算法快?
java gc中為什么復(fù)制算法比標(biāo)記整理算法快?與復(fù)制算法相比,標(biāo)記排序算法和復(fù)制算法的主要區(qū)別在于是否需要一個(gè)空閑內(nèi)存區(qū)域來存儲(chǔ)幸存的對象。對于標(biāo)記排序算法,沒有可用內(nèi)存,需要按順序?qū)⑿掖鎸ο笠苿?dòng)到
java gc中為什么復(fù)制算法比標(biāo)記整理算法快?
與復(fù)制算法相比,標(biāo)記排序算法和復(fù)制算法的主要區(qū)別在于是否需要一個(gè)空閑內(nèi)存區(qū)域來存儲(chǔ)幸存的對象。
對于標(biāo)記排序算法,沒有可用內(nèi)存,需要按順序?qū)⑿掖鎸ο笠苿?dòng)到內(nèi)存的一端。為了保證其他幸存對象的內(nèi)容在移動(dòng)過程中不被覆蓋,需要在標(biāo)記期間根據(jù)內(nèi)存地址對其進(jìn)行排序。但是,復(fù)制算法并不關(guān)心幸存對象的內(nèi)存地址順序,只需要直接復(fù)制它們,所以復(fù)制算法比較標(biāo)記記住,排序算法要快一點(diǎn),但是需要更多的內(nèi)存。根據(jù)兩種算法的特點(diǎn)以及新一代存儲(chǔ)對象和老年存儲(chǔ)對象的特點(diǎn),分別采用了相應(yīng)的算法。
復(fù)制算法的幸存對象不在乎存儲(chǔ)地址順序
標(biāo)記排序算法需要根據(jù)對象的存儲(chǔ)順序移動(dòng)
小a為了擺脫放羊的艱苦生活而努力學(xué)習(xí)。他成功后,朋友邀請他到澳大利亞買了一個(gè)農(nóng)場,過上舒適的生活。
如果你想寫,你可以寫C。但現(xiàn)實(shí)是,許多C不能忍受他們的GC切換到Java。。。你想倒退。。。
最初,Java的GC的優(yōu)點(diǎn)是異步集中收集,這是一種比手動(dòng)刪除更有效的方法。為什么你要自立,自己動(dòng)手。