垃圾回收器
| 组合 | ![]() |
|---|---|
parNew 复制多线程 |
|
Serial: 复制 |
|
Serial_Old: 标记整理 |
![]() |
CMS: Concurrent 同时发生, 只清除不整理, 因此想要分配对象(连续空间)就得连续空间,需要调用SerialOld帮忙整理出来 |
执行步骤
|
吞吐量 && 停顿时间 吞吐量= app/(app+gcTime) |
|
G1垃圾回收器: G1 本质是 分区 + 标记-复制 + 并发 + 可控停顿的综合算法。 对老年代的清理会选择存活度较低的区域, 也是Garbage first的由来 |
概述
内存结构:分块
================ 算法流程: 1. 年轻代收集(Minor GC)
2. 并发标记周期(Concurrent Mark)
3. 混合回收(Mixed GC)
没内存空间了还是会进行Full GC: 单线程执行标记整理法 导致应用程序暂停 |
| 小结 | JDK8及以前: 关注吞吐量: Parallel Scavenge+Parallel Old JDK9以后G1 |










