【JVM学习笔记】垃圾收集器

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/java_faep/article/details/81358234

Serial收集器

最基本,发展最悠久

单线程垃圾收集器

适用于桌面应用

ParNew收集器

与Serial收集器的区别是它是多线程的

Parallel Scavenge收集器

复制算法(新生代收集器)

多线程收集器

达到可控制的吞吐量;吞吐量:CPU用于运行用户代码的时间与CPU消耗的总时间的比值

吞吐量=(执行用户代码时间)/ (执行用户代码的时间 + 垃圾回收所占用的时间)

-XX:MaxGCPuaseMillis 垃圾收集器最大停顿时间

-XX:GCTimeRatio吞吐量(0,100),默认值99

CMS收集器

Concurrent Mark Sweep

使用标记-清除算法

用在老年代

工作过程:初始标记、并发标记、重新标记、并发清理

优点:并发收集、低停顿

缺点:占用大量的CPU资源、无法处理浮动垃圾、出现Concurrent Mode Failure、空间碎片

并发和并行的区别?

并行(parallel):指在同一时刻,有多条指令在多个处理器上同时执行

并发(concurrency):指在同一时刻只能有一条指令执行,但多个进程指令被快速的轮换执行,使得在宏观上具有多个进程同时执行的效果,但在微观上并不是同时执行的,只是把时间分成若干段,使多个进程快速交替的执行

G1收集器

收集器届的大哥

主要是面向服务端应用

集中了前面所说的所有收集器的优势

优势:

并行与并发

分代收集

空间整合

可预测的停顿

步骤:

初始标记

并发标记

最终标记

筛选回收

猜你喜欢

转载自blog.csdn.net/java_faep/article/details/81358234
今日推荐