发布于2026-07-09 阅读(0)
扫一扫,手机访问
聊到JVM老年代收集器,Parallel Old 这个角色其实挺有意思的。它是 Parallel Sca venge 的标配搭档——一个多线程、标记-整理算法的老年代收集器。
它的核心思路是:通过并行标记、分段整理以及工作窃取机制,把吞吐量拉到尽可能高。相比单线程的 Serial Old,它在 STW 时间上有本质性的改善。说白了,就是更适合那种吞吐量优先的批处理场景。

不过这里有个常见误区:Parallel 收集器本身其实不负责 Full GC——它只管新生代(Parallel Sca venge)。Full GC 中老年代的回收由配套的老年代收集器承担。在 Parallel Sca venge 搭配场景下,老年代默认用的是 Parallel Old,而不是 Serial Old。Serial Old 更像是“备胎”,只在特定条件下才被动启用,比如 CMS 失败、JDK 早期版本,或者你主动显式配置了 -XX:+UseSerialOldGC。
所以,如果直接问“Parallel 收集器在 Full GC 时与 Serial Old 的标记-整理算法多线程改造”,概念上就有点混淆了。正确的对应关系是:
下面直接拆解 Parallel Old 相比 Serial Old 在标记-整理算法上的关键改造点:
并行标记阶段
并行整理阶段
STW 时间大幅缩短
查看 GC 日志中的收集器标识:
PSFullGC 或 Full GC (Parallel) → 表示 Parallel Old 执行了 Full GC;Full GC (System) 或 Full GC (Serial) → 很可能触发了 Serial Old(尤其常见于 CMS 失败后回退);-XX:+UseParallelOldGC(JDK 8+ 默认开启),则优先走 Parallel Old;显式加 -XX:+UseSerialOldGC 才强制启用 Serial Old。不复杂但容易忽略。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8