Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
醒狮指南
JavaGuide
提交
08bf68fe
J
JavaGuide
项目概览
醒狮指南
/
JavaGuide
与 Fork 源项目一致
从无法访问的项目Fork
通知
5
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
J
JavaGuide
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
08bf68fe
编写于
4月 14, 2020
作者:
何
何正海
提交者:
GitHub
4月 14, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
标记清除算法标记的是活动的对象,不是需要回收的对象
标记清除算法标记的是活动的对象,不是需要回收的对象
上级
36fdc1b2
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
2 addition
and
2 deletion
+2
-2
docs/java/jvm/JVM垃圾回收.md
docs/java/jvm/JVM垃圾回收.md
+2
-2
未找到文件。
docs/java/jvm/JVM垃圾回收.md
浏览文件 @
08bf68fe
...
...
@@ -282,7 +282,7 @@ JDK1.2 以后,Java 对引用的概念进行了扩充,将引用分为强引
### 3.1 标记-清除算法
该算法分为“标记”和“清除”阶段:首先标记出所有
需要回收的对象,在标记完成后统一回收所有
被标记的对象。它是最基础的收集算法,后续的算法都是对其不足进行改进得到。这种垃圾收集算法会带来两个明显的问题:
该算法分为“标记”和“清除”阶段:首先标记出所有
活动的对象,在标记完成后统一回收所有未
被标记的对象。它是最基础的收集算法,后续的算法都是对其不足进行改进得到。这种垃圾收集算法会带来两个明显的问题:
1.
**效率问题**
2.
**空间问题(标记清除后会产生大量不连续的碎片)**
...
...
@@ -382,7 +382,7 @@ Parallel Scavenge 收集器也是使用复制算法的多线程收集器,它
-
**初始标记:**
暂停所有的其他线程,并记录下直接与 root 相连的对象,速度很快 ;
-
**并发标记:**
同时开启 GC 和用户线程,用一个闭包结构去记录可达对象。但在这个阶段结束,这个闭包结构并不能保证包含当前所有的可达对象。因为用户线程可能会不断的更新引用域,所以 GC 线程无法保证可达性分析的实时性。所以这个算法里会跟踪记录这些发生引用更新的地方。
-
**重新标记:**
重新标记阶段就是为了修正并发标记期间因为用户程序继续运行而导致标记产生变动的那一部分对象的标记记录,这个阶段的停顿时间一般会比初始标记阶段的时间稍长,远远比并发标记阶段时间短
-
**并发清除:**
开启用户线程,同时 GC 线程开始对
为
标记的区域做清扫。
-
**并发清除:**
开启用户线程,同时 GC 线程开始对
未
标记的区域做清扫。
![
CMS 垃圾收集器
](
http://my-blog-to-use.oss-cn-beijing.aliyuncs.com/18-8-27/82825079.jpg
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录