Serial 收集器
不同的应用场景,选择不同的收集器
最基本,发展最悠久。单线程垃圾收集器,主要用于新生代
加入设备4个线程在运行,垃圾收集器工作的时候,4个线程都要暂停。垃圾收集器执行完之后,4个工作线程开始工作。
parnew收集器
多线程收集器
区别是多个线程在收集,工作线程还是要暂停的。
一般用于新生代 复制算法。
parallel收集器
吞吐量:CPU用于运行用户代码的时候与CPU消耗的总时间的比值
吞吐量 = (执行用户代码时间)/ (执行用户代码的时间+垃圾回收占用的时间)
停顿时间小则频率变大
手机端更要求停顿时间短,服务器更要求吞吐量大。
CMS 收集器 Concurrent Mark Sweep
使用的标记-清除算法,用在老年代。并发
这里的并发 打扫卫生和扔垃圾同时进行,并行是分开进行。但两者都有很多人干
并行如下;
并行
工作过程:
初始标记,并发标记,重新标记,并发清理
优点:并发收集,低停顿
缺点:占用大量cpu,无法处理浮动垃圾,出现Concurrent mode failure (内存区域指定不合理导致,塞不下)。 空间碎片(标记清除算法特点)
初始标记:标记可被垃圾回收的对象。
重新标记:修正并发并发操作,对象状态变化的标记
浮动垃圾:打扫完之后又扔下来的垃圾
g1收集器详解 重点
最牛逼
优势:并行与并发,分代收集,空间整合,可预测的停顿()
步骤:初始标记,并发标记,最终标记,筛选回收。