JVM 垃圾回收器

1. Serial

常用于年轻代的垃圾回收器,使用的算法为标记-清理。
单线程

2. ParNew

常用于年轻代的垃圾回收器,使用的算法为标记-复制。
多线程

3. CMS

常用于老年代的垃圾回收器,使用的算法为标记-清理-整理。
CMS执行垃圾回收的过程:
1、初始标记;
2、并发标记;
3、重新标记;
4、并发清理;

3.1. 初始标记

系统停止运行;
运行速度:快
标记GC Roots;
GC Roots 的点有方法的局部变量和类的静态变量

3.2. 并发标记

系统可以继续运行;
运行速度:慢
追踪GC Roots(看本对象被谁应用,可以理解为关联关系图谱生成)。

3.3. 重新标记

系统停止运行;
运行速度:快
因为在第二阶段并发标记的时候,系统在继续运行,期间会产生新的对象,也有老对象变成垃圾对象。
所以需要在第二阶段的基础上重新对少部分对象重新标记;

3.4. 并发清理

系统可以继续运行;
运行速度:慢
清理之前标记的垃圾对象;

原创文章,转载请注明: 转载自LoserZhao – 诗和远方[ http://www.loserzhao.com/ ]

本文链接地址: http://www.loserzhao.com/java/jvm-gc.html

文章的脚注信息由WordPress的wp-posturl插件自动生成

发表评论?

0 条评论。

发表评论


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

使用新浪微博登陆