1. 程式人生 > >04_垃圾回收器

04_垃圾回收器

gpo tro 多線程 class 新生代 有效 ron 基礎 div

【簡述】

在Java虛擬機中,垃圾回收器不僅僅只有一種,什麽情況下該使用哪種,對性能又有什麽樣的影響,這都是我們需要了解的。

主要的垃圾回收器有這麽幾種:

1.串行垃圾回收器

2.並行垃圾回收器

3.CMS回收器

4.G1回收器

【串行垃圾回收器】

串行回收器是指使用單線程進行垃圾回收的回收器,每次回收時,串行回收器只有一個工作線程,對於並行能力較弱的計算機來說,串行回收器的專註性和獨占性往往有更好的性能表現,串行回收器可以在新生代和老年代使用,根據作用域不同的堆空間,分為新生代串行回收器和老年代串行回收器。

-XX:+UseSerialGC 參數可以設置使用新生代串行回收器和老年代串行回收器。

【並行回收器(ParNew回收器)】

並行回收器在串行回收器基礎上做了改進,它可以使用多個線程同時進行垃圾回收,對於計算能力強的計算機而言,可以有效縮短垃圾回收所需要的實際時間。

ParNew回收器是一個工作在新生代的垃圾回收器,它只是簡單的將串行回收器多線程化,它的回收策略和算法與串行回收器一樣。

-XX:+UseParNewGC新生代ParNew回收器,老年代則使用串行回收器。ParNew回收器工作時的線程數量可以使用 -XX:ParallelGCThreads參數指定,一般最好和計算機的CPU相當,避免過多的線程影響性能。

04_垃圾回收器