JVM-垃圾、垃圾回收算法(2)

GC常用算法

1. 標(biāo)記清除(Mark-Sweep)
image.png

image.png
  • 算法相對簡單
  • 在存活對象較多的情況,下效率較高。
  • 兩次掃描,第一次進(jìn)行標(biāo)記,第二次進(jìn)行清理,效率偏低。
  • 容易產(chǎn)生碎片
2. 拷貝(Copying)
image.png

image.png
  • 適用于存活對象較少的情況
  • 只掃描一次,效率高,適合伊甸區(qū)
  • 沒有碎片
  • 移動(dòng)復(fù)制對象,需要調(diào)整對象引用
  • 空間浪費(fèi)
3. 標(biāo)記壓縮(Mark-Compact)
image.png

image.png
  • 不會產(chǎn)生碎片,方便對象分配
  • 不會產(chǎn)生內(nèi)存減半
  • 掃描兩次
  • 需要移動(dòng)對象,效率偏低
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1. 什么是garbage垃圾? 沒有任何引用指向的一個(gè)對象或者多個(gè)對象(循環(huán)引用),就是垃圾 1.1 Java與...
    silence_J閱讀 712評論 0 1
  • 垃圾回收.GC 1.垃圾判斷算法 1.1 引用計(jì)數(shù)算法 給對象添加一個(gè)引用計(jì)數(shù)器,當(dāng)有一個(gè)地方引用它,計(jì)數(shù)器加1,...
    飛行員阿越閱讀 311評論 0 1
  • 1)可達(dá)性分析法(判斷對象是否存活):當(dāng)一個(gè)對象到GC Roots沒有任何引用鏈相連時(shí)。GC Roots對象:虛擬...
    沐兮_d64c閱讀 324評論 0 5
  • 垃圾回收器 什么是垃圾對象? 沒有任何引用的對象。 如何發(fā)現(xiàn)垃圾對象? reference count 引用計(jì)數(shù)每...
    三不猴子閱讀 600評論 0 4
  • JVM架構(gòu)圖分析 JVM被分為三個(gè)主要的子系統(tǒng) (1)類加載器子系統(tǒng)(2)運(yùn)行時(shí)數(shù)據(jù)區(qū)(3)執(zhí)行引擎 1. 類加載...
    匆匆歲月閱讀 1,094評論 1 19

友情鏈接更多精彩內(nèi)容