Parallel Scavenge收集器
文章目錄
- Parallel Scavenge收集器
- 關注點:
- Parallel Scavenge 收集器提供了兩個用于精準控制吞吐量
- 一個是控制最大垃圾收集停頓時間的-XX:MaxGCPauseMillis引數
- 以及直接設定吞吐量大小的-XX:GCTimeRatio引數
Parallel Scavenge 收集器 是一款新生代收集器 同樣是標記-復制演算法實作的收集器
也是可以進行并行手機的多執行緒收集器
Parallel Scavenge的諸多特性從表面上來看和ParNew相似
關注點:
CMS收集器主要是盡可能地縮短垃圾收集時用戶執行緒的停頓的時間 而Parallel Scavenge收集器的目標則是達到
一個可控制的吞吐量 所謂吞吐量就是處理器用于運行 用戶代碼的時間

如果虛擬機完成某個和任務 用戶代碼加上垃圾收集總共耗費 100 min 垃圾收集花掉1min 那吞吐量就是99%
停頓時間越短 越適合需要與用戶互動或者保證服務回應的質量的程式 良好的相應速度能提升用戶體驗
高吞吐量則是可以最高效率的充分利用處理資源 盡快完成程式的運算任務 主要適合在后臺運算 不需要太需要互動分析任務
Parallel Scavenge 收集器提供了兩個用于精準控制吞吐量
一個是控制最大垃圾收集停頓時間的-XX:MaxGCPauseMillis引數
MaxGCPauseMillis引數允許的值是一個大于0的毫秒數,收集器盡力保證記憶體回識訓費時間不超過用戶設定值
當然你不要想多了不要異想天開的認為如果把這個數的引數設定更小一點使得整個系統變得更快
1、垃圾停頓時間的縮短是以犧牲吞吐量和新生代的空間為代價換來的
2、系統把整個新生代調小的小一點 收集300M 肯定比收集500M快 這也直接導致了收集發生更頻繁 原來十秒收集一次每次停頓100毫秒 現在變成5s收集一次 每次停頓70毫秒 停頓時間的確在下降 但是吞吐量也降下來了
以及直接設定吞吐量大小的-XX:GCTimeRatio引數
GCTimeRatio 引數的值則是當一個大于0小于100的整數 也就是i垃圾收集占總時間的比率相當于吞吐量的倒數
譬如 把引數設定為19 允許最大的垃圾收集時間就占總是加你的 5% 即(1/(1+19)) 默認值是99 即最大的1% 即垃圾收集時間
由于與吞吐量關系密切相關 Parallel Scavenge、 收集器還有一個引數-XX:+UseAdoptiveSizePolic值得關注
1、這是一個開關引數 當這個引數被激活之后 就不需要人工指定Yang(新生代的大小)-Xmn 、Eden(伊甸園)與Survivor(幸存區比例) 、晉升老年代物件大小 等細節引數
2、GC Ergonomics自適應策略:虛擬機會根據當前系統的運行情況收集性能監控資訊 動態調整這些引數以及提供最合適的時間和最大吞吐量,這種調節方式稱為垃圾收集的自適應調節策略
手動調節很難 交給虛擬機去完成是一個不錯的 選擇 只需要把記憶體資料設定好 然后使用MaxGCPauseMillis引數 胡總和吞吐量給虛擬機設立一個優化目標 具體細節引數調節作業由虛擬機來完成
s引數 胡總和吞吐量給虛擬機設立一個優化目標 具體細節引數調節作業由虛擬機來完成
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/293077.html
標籤:其他
