JVM垃圾收集

简介:

垃圾收集算法:
标记清除:标记和清除的效率都不高、产生碎片;
复制:代价高只能用到一半内存(新生代中使用,Eden:Survicor:Survicor=8:1:1);
标记-整理:老年代使用;

垃圾收集器:
Serial(client模式下的默认新生代收集器):
缺点:单线程且会停止所有工作线程;
优点:简单高效;
ParNew(Serial的多线程版本,server模式下的默认新生代收集器):
缺点:在单核场景下性能不如Serial;
优点:能和CMS收集器配合工作;
Parallel Scavenge(类似ParNew,关注吞吐量):
缺点:不能和CMS收集器配合工作;
优点:可以设置停顿间隙以及吞吐量、有自适应调节策略;
CMS(关注用户线程停顿时间)
Serial Old:Serial的老年代版本,使用标记整理算法,主要client模式下使用,并且可作为CMS的后备方案,在并发收集发送Concurrent Mod Failure的时候使用。
Parallel Old:JDK1.6才开始提供,配合Parallel Scavenge达到吞吐量优先的效果。
CMS:一种以最短回收停顿时间为目标的收集器,使用标记清除算法。分初始标记、并发标记、重新标记、并发清除四个阶段,其中第1和3需要停顿用户响应;
优点:并发收集、低停顿;
缺点:对CPU资源非常敏感、无法处理浮动垃圾可能出现Concurrent Mod Failure导致Full GC、产生内存碎片;
G1收集器:JDK1.6.14以后才提供,比CMS有两个明显改进:基于“标识-整理”算法、精确控制停顿。
内存分配和回收策略:对象优先在Eden区分配,大对象和长期存活的对象直接进去老年代;

wKiom1OVgAeytysMAAFcInq-lP4192.jpg


本文转自 古道卿 51CTO博客,原文链接:http://blog.51cto.com/gudaoqing/1424173


相关文章
|
5月前
|
数据采集 监控 算法
深入理解JVM系列教程(07) - 垃圾收集器
深入理解JVM系列教程(07) - 垃圾收集器
32 0
|
15天前
|
算法 Java UED
【五一创作】值得一看的JVM垃圾收集器
【五一创作】值得一看的JVM垃圾收集器
|
1月前
|
算法 Java
JVM中如何实现垃圾收集
JVM中如何实现垃圾收集
|
4月前
|
存储 前端开发 Java
深入解析JVM内存结构:Metaspace、堆与垃圾收集器
深入解析JVM内存结构:Metaspace、堆与垃圾收集器
|
9月前
|
算法 Java
JVM中垃圾收集算法
JVM中垃圾收集算法
123 0
|
7月前
|
算法 Java
【面试题精讲】JVM中有哪些垃圾收集器
【面试题精讲】JVM中有哪些垃圾收集器
|
8月前
|
存储 算法 Oracle
一文带你深入理解JVM - ZGC垃圾收集器
ZGC(Z Garbage Collector)是一款由Oracle公司研发的,以低延迟为首要目标的一款垃圾收集器。它是基于动态Region内存布局,(暂时)不设年龄分代,使用了读屏障、染色指针和内存多重映射等技术来实现可并发的标记-整理算法的收集器。在JDK 11新加入,还在实验阶段,主要特点是:回收TB级内存(最大4T),停顿时间不超过10ms。
110 0
|
8月前
|
算法 Java UED
JVM - 垃圾收集器
垃圾收集器大概可以分为: 串行垃圾收集器 并行垃圾收集器 CMS(并发)垃圾收集器
84 0
JVM - 垃圾收集器
|
8月前
|
存储 算法 Java
JVM 收集算法 垃圾收集器 元空间 引用
JVM 收集算法 垃圾收集器 元空间 引用
74 0
|
8月前
|
监控 算法 Java
7 种 JVM 垃圾收集器详解
7 种 JVM 垃圾收集器详解
87 0