java 虛擬機( jvm ) 的垃圾收集器的發展史

有了虛擬機,就一定需要收集垃圾的機制,這就是Garbage Collection ,對應的產品我們稱爲 Garbage Collector

  1. 1999年,隨JDK 1.3.1 一起來的是串行方式的 Serial GC ,它是第一款GC。ParNew GCSerial GC 的多線程版本。
  2. 2002年2月26日,Parallel GCConcurrent Mark Sweep GC( 即 CMS ) 跟隨 JDK1.4.2 一起發佈。
  3. Parallel GC 在 JDK6 之後成爲 Hotspot 默認GC。
  4. 2012年,在 JDK1.7u4 中,G1 可用。
  5. 2017年,JDK9 中 G1 成爲默認垃圾收集器,以替代 CMS
  6. 2018年3月,JDK10 中 G1 的並行完整垃圾回收,實現並行性能改善最壞情況的延遲。
  7. 2018年9月,JDK11 發佈。引入 Epsilon GC ,又稱爲“No-Op(無操作)” 回收器;同時引入 ZGC: 可伸縮的低延遲迴收器(Experimental)。
  8. 2019年3月,JDK12 發佈。增加 G1,自動返回未使用堆內存給操作系統; 同時,引入Shenandoah GC:低停頓時間的GC(Experimental)。
  9. 2019年9月,JDK13 發佈。增強 ZGC,自動返回未使用堆內存給操作系統。
  10. 2020年3月,JDK14 發佈。刪除 CMS。擴展 ZGC 在 mac 和 windows 的應用。

7款 經典 的垃圾回收器(不包含新發行的GC)

串行回收器: SerialSerial Old
並行回收器: ParNewParallel ScavengeParallel Old
併發回收器: CMSG1

區域 GC
新生代 Serial GCParallel ScavengeParNew GC
老年代 Serial Old GCParallel Old GCCMS
整堆收集器 G1
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章