首页 > 编程知识 正文

jvm垃圾回收机制有几种,jvm垃圾回收算法和垃圾回收器

时间:2023-05-03 20:06:06 阅读:201691 作者:4769

1.GC分类 按线程数:并行垃圾回收器:Parallel Collector. 同一时间段内只有一个cpu执行垃圾回收操作.用户线程等待. 串行垃圾回收期:Serial Collector.同一时间段内可以有多个cpu执行垃圾回收操作,用户线程等待.按压缩方式:压缩式,内存有序. 非压缩式:内存无序.按工作方式:并发式,及并发GC,用户线程和垃圾回收器同时交替进行. 独占式,垃圾回收线程进行时,用户线程需要等待.按工作区分:年轻代,老年代.

2.GC性能指标
吞吐量: 用户线程时间/ 垃圾回收执行时间 + 用户线程执行时间. 吞吐量优先意味着 单位时间内STW时间最短.
暂停时间:垃圾回收的时,用户线程等待的时间.暂停时间优先意味着stw的频率增加.
说明:吞吐量和暂停时间相当于竞争对手, 吞吐量优先意味着,线程的回收频率降低.STW时间即暂停时间加长. 暂停时间优先,意味着垃圾回收频率增强,吞吐量下降.
现在的标准:保证吞吐量的情况下,尽量降低暂停时间.

3.7款经典垃圾收集器和垃圾分代之间的关系



Serial GC最开始的GC,
ParNew的多线程版本.
ParallelGC在JDK1.6之后称为HotSpot默认GC.
2017年JDK9中G1变成默认的垃圾收集器,以替代CMS
2019年9月JDK13,增强ZGC

4.如何查看默认的垃圾收集器
jinfo -flag 相关垃圾回收器参数 进程ID

5.Serial回收器:串行回收器.
最早的垃圾回收期,单个cpu时运行效率高.由于运行Stw时间长,所以不适用于与用户交互性强的应用中.

6.ParNew 并行回收器:
-XX:ParallelGCThreads限制线程数量,默认开启和CPU数据相同的线程数

7.parallel回收器:吞吐量优先
同样是并行垃圾回收器.和ParNew不同的是Parallel 回收器可以调整吞吐量,可以设置自适应策略.开启自适应策略后,parallel回收器会根据内存情况自动设置年轻代晋升老年代的年龄参数,自动设置吞吐量和暂停时间的比例.
parallel old 使用的是标记压缩回收算法,所以会产生stw,所以该回收器适合做后天工资支付,批量处理,订单处理的应用程序.
parallel的参数设置有:
-XX:+UseParallelGC 手动开启Parallel回收器.jkd8默认开启.
-XX:+UseParallelOldGC 手动开启Parallel Old回收器.jkd8默认开启.
上面这两个参数关联,开启一个,默认开启另一个
-XX:ParallelGCThreads:设置年轻代并行收集器的线程数,一般与CPU数量相同,如果CPU数量大于8个,则值=3+(5*N/8)
-XX:MaxGCPauseMillis:设置暂停时间
-XX:GCTimeRatio:设置吞吐量比例,默认99,取值范围0-100,也就是垃圾回收时间不超过1%
-XX:+UseAdaptiveSizePolicy:设置是否开启自适应测率

8.CMS并发回收器
Cms回收器主打低延迟.
在JDK1.5推出了Current Mark Sweep回收器主打低延迟.可以让用户线程和垃圾回收线程同时进行.
运行过程:
初始标记: 初始标记阶段,同样需要STW,只是初始阶段标记只标记与GOOT ROOTS 直接关联的对象.所以STW的时间很短.
并发标记:并发标记阶段用户线程和垃圾回收线程同时进行.
再次标记阶段:再标记阶段,标记在并发阶段产生的新垃圾对象,但是没有被标记为垃圾的对象.
清除阶段:采用了标记-清除算法,会产生内存碎片,无法采用标记-压缩算法是因为标记压缩的时候,用户正在使用的内存没法使用,就没法并发进行.

总结:如果想要最小化使用内存和cpu优先使用serial回收器,如果先要高吞吐量优先使用parallel,如果想要前台反应时间慢,优先使用cms,但是在jdk9将cms标为废弃.jdk14正式废弃.

9.G1整堆区域化分代回收器
Garbage First 是一个并行回收器.把堆内存分割为很多不想关的region区域,G1会根据region垃圾堆价值大小,维护一个优先列表,价值高的优先回收
优点:分代收集,小region之间使用复制算法.整体上算是标记-压缩算法.所以不会产生内存碎片,不会为了放置放对象,频繁出发垃圾回收.在内存较大的时候G1效率比cms好,内存小的时候CMS更好点.平衡点在6~8G.

10.垃圾回收器总结


11.GC日志分析


版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。