GC之Parallel Scavenge收集器

補充:堆內(nèi)存是指JVM的內(nèi)存大小包括堆區(qū)和非堆區(qū)取董;
-server 服務器模式運行秃臣,-client表示客戶端運行模式;
-Xms2G 最小JVM內(nèi)存2G唤殴,是JVM的堆區(qū)的大小,不包括PermGen到腥;
-Xmx3G 最大JVM內(nèi)存3G朵逝,是JVM的堆區(qū)的大小,不包括PermGen乡范;
-Xmn1G 指定JVM堆區(qū)中新生代的初始化大小為1G配名;

What(是什么)

Parallel Scavenge收集器是Java虛擬機中垃圾收集器的一種啤咽。
又稱為吞吐量優(yōu)先收集器,和ParNew收集器類似段誊,是一個新生代收集器闰蚕。使用復制算法的并行多線程收集器。Parallel Scavenge是Java1.8默認的收集器连舍,特點是并行的多線程回收没陡,以吞吐量優(yōu)先。

Why(為什么)

1.主要特點

Parallel Scavenge收集器的關注點與其他收集器不同索赏, Parallel Scavenge收集器的目標則是達到一個可控制的吞吐量(Throughput)
(吞吐量=運行用戶代碼時間/(運行用戶代碼時間+垃圾收集時間))

2.使用場景

Parallel Scavenge收集器的高吞吐量可以最高效率的利用CPU時間盼玄,盡快的完成程序的運算任務等,主要適合在后臺運算而不是太多交互的任務(其不適合需要與用戶交互的程序潜腻,良好的響應速度能提升用戶的體驗埃儿,此種場景CMS效果更好)。

How(怎么做)

1. 重要參數(shù)

重要的參數(shù)有三個融涣,其中兩個參數(shù)用于精確控制吞吐量童番,分別是

  • 1.1. 控制最大垃圾收集停頓時間的-XX:MaxGCPauseMillis參數(shù)
    MaxGCPauseMillis參數(shù)允許的值是一個大于0的毫秒數(shù),收集器將盡力保證內(nèi)存回收花費的時間不超過設定值威鹿。不過大家不要異想天開地認為如果把這個參數(shù)的值設置得稍小一點就能使得系統(tǒng)的垃圾收集速度變得更快剃斧,GC停頓時間縮短是以犧牲吞吐量和新生代空間來換取的:系統(tǒng)把新生代調(diào)小一些,收集300MB新生代肯定比收集500MB快吧忽你,這也直接導致垃圾收集發(fā)生得更頻繁一些幼东,原來10秒收集一次、每次停頓100毫秒科雳,現(xiàn)在變成5秒收集一次根蟹、每次停頓70毫秒。停頓時間的確在下降糟秘,但吞吐量也降下來了简逮。

  • 1.2. 直接設置吞吐量大小的 -XX:GCTimeRatio參數(shù)。
    GCTimeRatio參數(shù)的值應當是一個大于0小于100的整數(shù)尿赚,也就是垃圾收集時間占總時間的比率买决。如果把此參數(shù)設置為19,那允許的最大GC時間就占總時間的5%(即1 /(1+19))吼畏,默認值為99督赤,就是允許最大1%(即1 /(1+99))的垃圾收集時間。

  • 1.3. UseAdaptiveSizePolicy開關參數(shù)泻蚊。
    -XX:+UseAdaptiveSizePolicy是一個開關參數(shù)躲舌,當這個參數(shù)打開之后,就不需要手工指定新生代的大行孕邸(-Xmn)没卸、Eden與Survivor區(qū)的比例(-XX:SurvivorRatio)羹奉、晉升老年代對象年齡(-XX:PretenureSizeThreshold)等細節(jié)參數(shù)了,虛擬機會根據(jù)當前系統(tǒng)的運行情況收集性能監(jiān)控信息约计,動態(tài)調(diào)整這些參數(shù)以提供最合適的停頓時間或最大的吞吐量诀拭,這種調(diào)節(jié)方式稱為GC自適應的調(diào)節(jié)策略(GC Ergonomics)。

  • 1.4. GC Ergonomics:表示GC的自適應調(diào)節(jié)策略煤蚌,其中Ergonomics單詞表示工效學耕挨,人體工程學的意思。

2. 自適應調(diào)節(jié)策略

Parallel Scavenge收集器能夠配合自適應調(diào)節(jié)策略尉桩,把內(nèi)存管理的調(diào)優(yōu)任務交給虛擬機去完成筒占。只需要把基本的內(nèi)存數(shù)據(jù)設置好(如-Xmx設置最大堆),然后使用-XX:MaxGCPauseMillis參數(shù)(更關注最大停頓時間)或GCTimeRatio參數(shù)(更關注吞吐量)給虛擬機設立一個優(yōu)化目標蜘犁,那具體細節(jié)參數(shù)的調(diào)節(jié)工作就由虛擬機完成了翰苫。
自適應調(diào)節(jié)策略也是Parallel Scavenge收集器與ParNew收集器的一個重要區(qū)別。

-XX:-UseParallelGC 和 -XX:+UseParallelOldGC

Parallel New參考

使用方式:-XX:+UseParallelGC強制使用該收集器这橙,打開該收集器后奏窑,將使用Parallel Scavenge(年輕代)+Serial Old(老年代)的組合進行GC。

Parallel Old參考:是Parallel Scavenge收集器的老年代版本屈扎,用于老年代的垃圾回收埃唯,但與Parallel Scavenge不同的是,它使用的是“標記-整理算法”助隧。
適用于注重于吞吐量及CPU資源敏感的場合筑凫。

使用方式:-XX:+UseParallelOldGC滑沧,打開該收集器后并村,將使用Parallel Scavenge(年輕代)+Parallel Old(老年代)的組合進行GC。

補充

[GC[PSYoungGen 表示用的是年輕代使用Parallel Scavenge收集器滓技。
[GC[ParNew 表示使用的是年輕代使用ParNew收集器(Parallel New收集器)哩牍。
[GC[DefNew 表示用的是年輕代使用Serial收集器(Serial New收集器)。
[GC[PSOldGen 表示用的是老年代使用的Parallel Old收集器令漂。

JVM的GC日志的主要參數(shù)包括如下幾個:

-XX:+PrintGC 輸出GC日志
-XX:+PrintGCDetails 輸出GC的詳細日志
-XX:+PrintGCTimeStamps 輸出GC的時間戳(以基準時間的形式)
-XX:+PrintGCDateStamps 輸出GC的時間戳(以日期的形式膝昆,如 2013-05-04T21:53:59.234+0800)
-XX:+PrintHeapAtGC 在進行GC的前后打印出堆的信息
-XX:+PrintGCApplicationStoppedTime // 輸出GC造成應用暫停的時間
-Xloggc:../logs/gc.log 日志文件的輸出路徑

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市叠必,隨后出現(xiàn)的幾起案子荚孵,更是在濱河造成了極大的恐慌,老刑警劉巖纬朝,帶你破解...
    沈念sama閱讀 221,820評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件收叶,死亡現(xiàn)場離奇詭異,居然都是意外死亡共苛,警方通過查閱死者的電腦和手機判没,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,648評論 3 399
  • 文/潘曉璐 我一進店門蜓萄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人澄峰,你說我怎么就攤上這事嫉沽。” “怎么了俏竞?”我有些...
    開封第一講書人閱讀 168,324評論 0 360
  • 文/不壞的土叔 我叫張陵绸硕,是天一觀的道長。 經(jīng)常有香客問我胞此,道長臣咖,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,714評論 1 297
  • 正文 為了忘掉前任漱牵,我火速辦了婚禮夺蛇,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘酣胀。我一直安慰自己刁赦,他們只是感情好,可當我...
    茶點故事閱讀 68,724評論 6 397
  • 文/花漫 我一把揭開白布闻镶。 她就那樣靜靜地躺著甚脉,像睡著了一般。 火紅的嫁衣襯著肌膚如雪铆农。 梳的紋絲不亂的頭發(fā)上牺氨,一...
    開封第一講書人閱讀 52,328評論 1 310
  • 那天,我揣著相機與錄音墩剖,去河邊找鬼猴凹。 笑死,一個胖子當著我的面吹牛岭皂,可吹牛的內(nèi)容都是我干的郊霎。 我是一名探鬼主播,決...
    沈念sama閱讀 40,897評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼爷绘,長吁一口氣:“原來是場噩夢啊……” “哼书劝!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起土至,我...
    開封第一講書人閱讀 39,804評論 0 276
  • 序言:老撾萬榮一對情侶失蹤购对,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后陶因,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體骡苞,經(jīng)...
    沈念sama閱讀 46,345評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,431評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了烙如。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片么抗。...
    茶點故事閱讀 40,561評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖亚铁,靈堂內(nèi)的尸體忽然破棺而出蝇刀,到底是詐尸還是另有隱情,我是刑警寧澤徘溢,帶...
    沈念sama閱讀 36,238評論 5 350
  • 正文 年R本政府宣布吞琐,位于F島的核電站,受9級特大地震影響然爆,放射性物質(zhì)發(fā)生泄漏站粟。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,928評論 3 334
  • 文/蒙蒙 一曾雕、第九天 我趴在偏房一處隱蔽的房頂上張望奴烙。 院中可真熱鬧,春花似錦剖张、人聲如沸切诀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,417評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽幅虑。三九已至,卻和暖如春顾犹,著一層夾襖步出監(jiān)牢的瞬間倒庵,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,528評論 1 272
  • 我被黑心中介騙來泰國打工炫刷, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留擎宝,地道東北人。 一個月前我還...
    沈念sama閱讀 48,983評論 3 376
  • 正文 我出身青樓柬唯,卻偏偏與公主長得像认臊,于是被迫代替她去往敵國和親圃庭。 傳聞我的和親對象是個殘疾皇子锄奢,可洞房花燭夜當晚...
    茶點故事閱讀 45,573評論 2 359

推薦閱讀更多精彩內(nèi)容

  • 一拘央、GC收集器的分類: 按線程分為串行收集器和并行收集器,串行使用一個線程進行回收操作书在,并行使用多個線程進行回收灰伟,...
    城市里永遠的學習者閱讀 1,209評論 0 48
  • Java和C++之間有一堵由內(nèi)存動態(tài)分配和垃圾收集技術所圍成的“高墻”,墻外面的人想進來,墻里面的人想出來栏账。 對象...
    胡二囧閱讀 1,094評論 0 4
  • 如果說垃圾收集算法是內(nèi)存回收的方法論帖族,垃圾收集器就是內(nèi)存回收的具體實現(xiàn)。Java虛擬機規(guī)范中對垃圾收集器應該如何實...
    平頭哥2015閱讀 273評論 0 0
  • 概念理解新生代收集器Serial收集器ParNew收集器Parallel Scavenge收集器老年代收集器Ser...
    懶癌正患者閱讀 250評論 0 0
  • 周二早上,身體不適茶鹃,就請了半天假涣雕。正好遇到保潔阿姨,來家里做清潔闭翩,就聊了聊挣郭,發(fā)現(xiàn)了一些她工作上和生活上的事情。 我...
    德川亮閱讀 997評論 4 3