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