Serial + Serial
【描述】串行GC。
【算法】年轻代:标记-复制,老年代:标记-清除-整理。
【缺点】两个都是单线程的垃圾回收器,不能并行执行,都会触发STW。
Parallel Scavenge + Parallel Old 高吞吐量,高延迟
【描述】并行垃圾收集器主要适用于多核服务器,主要目标是增加吞吐量。
【算法】 年轻代:标记-复制,老年代:标记-清除-整理。
【特点】在GC期间,所有的CPU内核都在并行清理垃圾,所以暂停时间更短;在两次GC周期的间隔期,没有GC线程在运行,不会消耗任何系统资源。
【缺点】因为GC的所有阶段都不能中断,所以并行GC容易出现长时间的卡顿( GC启动之后,属于一次性完成的操作,于是单次的pause会变长。)
Parallel New + CMS 低吞吐量,低延迟
【目标】避免老年代垃圾收集时产生长时间的停顿。
【算法】年轻代:标记-复制,老年代:标记-清除。
【实现】不对老年代整理,而是使用空闲列表来管理内存空间的回收;在标记-清除阶段大部分工作是和应用线程一起并发执行。
【流程】初始标记->并发标记->并发预清理->并发可取消的预清理->最终标记->并发清除->并发重置。
G1
【目标】将STW停顿的时间和分布变成可预期以及可配置的。
【实现】首先,从分区上面,不再划分为连续的年轻代和老年代,而是划分成多个(通常是2048)个可以存放对象的小堆区;每个小堆区可以是eden、survivor、old;从逻辑上看所有的eden和survivor合起来就是年轻代,所有的old合起来就是老年代;
【特点】这种划分使垃圾回收的时候不需要每次都去回收整个区空间,而是以增量的方式来处理,每次只处理一部分小堆区,称为收集集;每次暂停都会收集所有年轻代的小堆区,可能包含一部分的老年代的小堆区。另一项创新是在并发阶段估算每个小堆区存活对象的个数。垃圾最多的小堆区会被优先收集。
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






















![[桜井宁宁]COS和泉纱雾超可爱写真福利集-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/4d3cf227a85d7e79f5d6b4efb6bde3e8.jpg)

![[桜井宁宁] 爆乳奶牛少女cos写真-一一网](https://www.proyy.com/skycj/data/images/2020-12-13/d40483e126fcf567894e89c65eaca655.jpg)