Java垃圾收集基礎

Java垃圾收集基礎

垃圾收集算法

引用計數法

問題:存在循環依賴導致無法回收問題

標記清除法

實現方式:通過根節點標記所有可達對象,清除所有不可達對象。
問題:出現大量空間碎片

複製算法

複製算法適用於新生代,因爲在新生代垃圾對象會多於存活對象,複製效果明顯。Hotspot虛擬機在新生代使用的就是複製算法(eden:from:to=8:1:1)
對象先在eden區創建,垃圾回收時拷貝到from 或to區域,這兩個空間可相互替代。

標記-壓縮算法

原理:將所有存貨對象壓縮到內存,然後清理邊界外的所有空間,避免碎片又不需要兩塊相同的內存空間。

增量算法

原理:通過分多次回收,減少系統停頓時間。缺點是涉及到線程切換和上下文切換的消耗,垃圾回收的總體成本上升。吞吐量下降。

(分代思想指不同的內存區域使用不同的垃圾回收算法)

評價垃圾回收期好壞的指標:

吞吐量

垃圾回收器負載
停頓時間
垃圾回收效率
反應時間
堆分配

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章