JVM 调优实战--垃圾回收的常见算法
目錄
引用計(jì)數(shù)法
原理
優(yōu)缺點(diǎn)
標(biāo)記清除法
原理
優(yōu)缺點(diǎn)
標(biāo)記壓縮算法
原理
優(yōu)缺點(diǎn)
復(fù)制算法
原理
JVM年輕代內(nèi)存空間
優(yōu)缺點(diǎn)
分代算法
總結(jié)
自動(dòng)化的管理內(nèi)存資源,垃圾回收機(jī)制必須要有一套算法來進(jìn)行計(jì)算,哪些是有效的對(duì)象,哪些是無效的對(duì)象,對(duì)于無效的對(duì)象就要進(jìn)行回收處理。
常見的垃圾回收算法有:引用計(jì)數(shù)法、標(biāo)記清除法、標(biāo)記壓縮法、復(fù)制算法、分代算法等。
引用計(jì)數(shù)法
原理
?
優(yōu)缺點(diǎn)
標(biāo)記清除法
標(biāo)記清除算法也叫根可達(dá)算法。在垃圾回收器執(zhí)行過程中會(huì)暫停所有的工作線程。
原理
優(yōu)缺點(diǎn)
標(biāo)記壓縮算法
原理
優(yōu)缺點(diǎn)
復(fù)制算法
原理
將存活對(duì)象從from區(qū)復(fù)制到to區(qū):
清空from區(qū),并且將to區(qū)的存活對(duì)象移動(dòng)到from區(qū),相當(dāng)于顛倒一下位置:
JVM年輕代內(nèi)存空間
使用的就是復(fù)制算法:
優(yōu)缺點(diǎn)
分代算法
總結(jié)
目前還沒有一種完美的垃圾回收算法,每一種算法既有優(yōu)點(diǎn)又有缺點(diǎn),因此根據(jù)垃圾回收對(duì)象的特點(diǎn)進(jìn)行選擇,才是最明智的選擇。
分代算法就是如此(因地制宜),根據(jù)回收對(duì)象的特點(diǎn)進(jìn)行選擇:
在JVM中,年輕代適合使用復(fù)制算法,因?yàn)槔鴮?duì)象較多;
老年代適合使用標(biāo)記清除或者標(biāo)記壓縮算法,因?yàn)槔^少,存活對(duì)象較多。
總結(jié)
以上是生活随笔為你收集整理的JVM 调优实战--垃圾回收的常见算法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: JVM 调优实战--什么是垃圾回收及Ja
- 下一篇: JVM 调优实战--可视化GC日志分析工