ParNew/Parallel:并行收集器
ParNew收集器 核心特点 Serial的多线程版本 新生代收集器 使用复制算法 可与CMS配合使用 工作流程 应用线程: ████████ [暂停] ████████ GC线程1: ▓▓▓▓ GC线程2: ▓▓▓▓ GC线程3: ▓▓▓▓ GC线程4: ▓▓▓▓ 参数配置 # 启用ParNew(新生代)+ CMS(老年代) java -XX:+UseConcMarkSweepGC -jar app.jar # (ParNew会自动启用) # 设置并行GC线程数 java -XX:ParallelGCThreads=4 -jar app.jar Parallel Scavenge收集器 核心特点 吞吐量优先收集器 新生代收集器 使用复制算法 自适应调节策略(GC Ergonomics) 与ParNew的区别 特性 ParNew Parallel Scavenge 目标 配合CMS降低延迟 最大化吞吐量 自适应 无 有 配合老年代 CMS Parallel Old 关键参数 # 启用Parallel Scavenge(新生代)+ Parallel Old(老年代) java -XX:+UseParallelGC -jar app.jar # 设置吞吐量目标(默认99,即GC时间占1%) java -XX:GCTimeRatio=19 -jar app.jar # 吞吐量 = 1 / (1 + 1/GCTimeRatio) # GCTimeRatio=19 → 吞吐量=95% # 设置最大GC停顿时间(毫秒) java -XX:MaxGCPauseMillis=200 -jar app.jar # 启用自适应调节(默认开启) java -XX:+UseAdaptiveSizePolicy -jar app.jar Parallel Old收集器 核心特点 Parallel Scavenge的老年代版本 使用标记-整理算法 多线程并行收集 组合使用 # 完整的并行收集器组合(JDK 7/8常用) java -XX:+UseParallelGC -XX:+UseParallelOldGC \ -XX:MaxGCPauseMillis=100 \ -XX:GCTimeRatio=19 \ -jar app.jar 自适应调节策略 Parallel Scavenge的核心优势是 自适应调节: ...