首頁  >  文章  >  php教程  >  JVM中的垃圾收集器

JVM中的垃圾收集器

高洛峰
高洛峰原創
2016-11-22 16:56:121944瀏覽

Serial收集器: 一種新生代的單執行緒收集器,採用複製演算法回收。當它進行垃圾收集時,其他用戶的所有執行緒都將暫停。

Serial Old收集器:Serial的老年代版本,採用的是標記-清除演算法,同樣也是單執行緒收集器。

ParNew收集器:ParNew收集器實際上是Serial的多執行緒版本,除了多執行緒收集垃圾外,其餘的包括收集演算法(複製演算法)、物件分配規則、回收策略等都與Serial收集器完全一樣。

Parallel Scavenge 收集器:是一種新生代收集器,採用的是複製演算法,是一種並行的多執行緒收集器,該收集器旨在提高系統的吞吐量(運行用戶程式碼的時間/(運行使用者程式碼的時間+垃圾收集時間)),所以Parallel Scavenger收集器又被稱為」吞吐量優先」收集器。

Parallel Old收集器:是Parallel Scavenge 收集器的老年代版本,採用的是‘標記-清除’演算法。

CMS收集器:特別重視使用者服務的回應速度,希系統的停頓時間最短,以帶給使用者較好的體驗。並發收集,低停頓。使用的而是‘標記-清除’演算法。

G1收集器:當前收集器技術發展的最前沿技術之一

      並行與並發的方式;


       

與其收集

       空間整合:整體上看G1採用的是'標記-整理'演算法,但是從局部來看是基於」複製」演算法。但無論如何,這兩種演算法都意味著G1演算法都不會產生記憶體空間碎片,收集後可以提供規則的可用記憶體。


       運作步驟:初步標記;併發標記;最終標記;篩選回收。

備註:

並發:垃圾收集線程可以和用戶線程同時執行

並行:可以有多條垃圾收集線程,但是此時的用戶線程仍然處於等待狀態。


🎜
陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn