6. 内存管理理
Eden S0 S1 OldMetaspace(Perm)
Heap
Young
分代管理理
Method Area
1. 为什什么?
? 不不同的对象?生命周期不不同, ?大部份是临时对象, 朝?生夕死
? 根据不不同的代, 采?用不不同的GC算法, 提?高GC效率
2. GC 类型
? Minor GC
? Major/Full GC
(Xmx, Xms)
(NewSize)
7. GC
Serial ParNewParallel Scanvenge
1. 年年轻代使?用复制算法, 分配对象时, Eden 空间不不?足时触发
? 复制Eden和From(S0,S1)中存活对象到To(S1,S0)
? 部分对象会晋升到Old区
? 清空Eden和From; From和To交换,直到下次GC
2. Serial Old: 使?用标记-压缩算法,串串?行行,独占式垃圾回收器?, STW 时间?长
3. Parallel Old: 使?用标记-压缩算法,关注系统吞吐率
4. CMS: 并发-标记-清除算法, 获取最短停顿时间
Serial Old CMSParallel Old
G1
年年轻代
年年?老老代
8. CMS(concurrent mark sweep)
3
4
2
1
Stop The Word
Initial Mark
标记Root可以直达的对象,耗时短
Concurrent
Concurrent Mark
从第?一步标记的对象出发,并发标记可达的对象
Stop The Word
Remark
重新标记, 修正并发标记期间因?用户程序继续运
?行行导致的对象关系间变化及新创建的对象
Concurrent
Concurrent Sweep
并?行行的进?行行?无?用对象的回收
5
Concurrent
Concurrent Reset
并发重置,为下?一次gc做好准备