Skip to content

Commit 2b5909f

Browse files
Update 2022-06-21-java.md
1 parent 5cd52c1 commit 2b5909f

File tree

1 file changed

+4
-2
lines changed

1 file changed

+4
-2
lines changed

_posts/2022-06-21-java.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -216,10 +216,12 @@ CMS(Concurrent Mark Sweep)收集器:
216216
2. 并发标记(CMS concurrent mark):从GC Roots的直接关联对象开始遍历整个对象图
217217
3. 重新标记(CMS remark):STW,为了修正并发标记期间,因用户程序继续运作而导致标记产生变动的那一部分对象的标记记录;采用三色标记算法和增量更新避免漏标
218218
4. 并发清除(CMS concurrent sweep):清理删除掉标记阶段判断的已经死亡的对象
219+
- 优点:并发收集,低停顿
219220
- 缺点:
220221
1. 工作时会占用一部分CPU资源而导致用户程序变慢,降低总吞吐量
221-
2. CMS无法清除浮动垃圾
222+
2. 无法清除浮动垃圾
222223
3. 基于**标记-清除**算法会导致内存碎片不断增多,在分配大对象时有可能会提前触发一次Full GC。
224+
4. 停顿时间不可预期
223225

224226
Garbage First(G1)收集器:
225227
- 特点:引入**分区**的思路,弱化了分代的概念,并合理利用垃圾收集各个周期的资源。
@@ -235,7 +237,7 @@ Garbage First(G1)收集器:
235237
2. 并发标记(Concurrent Marking),从 GC Root 开始对堆中对象进行可达性分析,找到存活对象。
236238
3. 最终标记(Final Marking),为了修正在并发标记期间因用户程序继续运作而导致标记产生变动的那一部分标记记录,STW,但是可并行执行。
237239
4. 筛选回收(Live Data Counting and Evacuation),对各个Region中的回收价值和成本进行排序并制定回收计划。
238-
240+
- 优点:保持高回收率的同时,减少停顿
239241

240242
![](https://raw.githubusercontent.com/CompetitiveLin/ImageHostingService/picgo/imgs/202305091525435.png)
241243

0 commit comments

Comments
 (0)