Java中垃圾回收(GC)總結

一、常見垃圾回收算法有:

  • 引用計數法
  • 標記清除法
  • 標記壓縮法
  • 複製算法
  • 分代算法
    根據回收對象的特點進行選擇,在JVM中年輕代適合使用複製算法,老年代適合使用標記清除或標記壓縮算法。

二、垃圾收集器以及內存分配

光有垃圾回收算法還是不夠,需要具體的實現。在JVM中,實現了多種垃圾收集器,如:

  • 串行垃圾收集器

  • 並行垃圾收集器

  • CMS(併發)垃圾收集器
    CMS全稱Concurrent Mark Sweep是一款併發的,使用標記清除算法的垃圾回收期,該回收器是針對老年代垃圾回收的,通過參數-XX:+UseConcMarkSweepGC進行設置。JDK 8默認垃圾收集器。

  • G1垃圾收集器
    在JDK 7中正式使用的全新垃圾收集器,在JDK 9中使用G1垃圾收集器替代CMS垃圾收集器。

    G1的設計原則就是簡化JVM性能調優,開發人員只需要簡單的三步即可完成調優:

    1. 開啓G1垃圾收集器
    2. 設置堆的最大內存
    3. 設置最大的停頓時間

    G1中提供了三種垃圾回收模式,Young GC、Mixed GC、Full GC,在不同的條件下被觸發。

三、可視化垃圾回收分析工具

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