JVM性能調優-ParNew收集器內容精講

  • 2019 年 12 月 20 日
  • 筆記

簡介:parnew垃圾收集器圖解分析特點
是什麼

ParNew 收集器其實就是 Serial 收集器的多執行緒版本,除了使⽤多條執行緒進⾏垃圾收集之外,其餘⾏為包括 Serial 收集器可⽤的所有控制參數(例如:-XX: SurvivorRatio、-XX:PretenureSize』 Threshold、-XX: HandlePromotionFailure 等)、收集演算法、Stop The World、對象分配規則、回收策略等都與 Serial 收集器完全⼀樣,在實現上,這兩種收集器也共⽤了相當多的程式碼

parnew垃圾收集器的特點
  • ParNew 收集器除了多執行緒收集之外,其他與 Serial 收集器相⽐並沒有太多創新之處,但它卻是許多運⾏在 Server 模式下的虛擬機中⾸選的新⽣代收集器,其中有⼀個與性能⽆關但很重要的原因是,除了 Serial 收集器外,⽬前只有它能與 CMS 收集器配合⼯作。
  • 使⽤-XX: ParallelGCThreads 參數來限制垃圾收集的執行緒數
  • 多執行緒操作存在上下⽂切換的問題,所以建議將-XX: ParallelGCThreads設置成和CPU核數相同,如果設置太多的話就會產⽣上下⽂切換消耗
並發與並⾏的概念講解 CMS垃圾回收器
  • 並⾏(Parallel):指多條垃圾收集執行緒並⾏⼯作,但此時⽤戶執行緒仍然處於等待狀態。
  • 並發(Concurrent):指⽤戶執行緒與垃圾收集執行緒同時執⾏(但不⼀定是並⾏的,可能會交替執⾏),⽤戶程式在繼續運⾏,⽽垃圾收集程式運⾏於另⼀個 CPU 上