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 上