JAVA垃圾回收器

Serial 收集器(单核服务器,最快,单线程版本)

串行收集器是最古老,最稳定以及效率高的收集器,可能会产生较长的停顿,只使用一个线程去回收。新生代、老年代使用串行回收;新生代复制算法、老年代标记-压缩;垃圾收集 的过程中会 Stop The World(服务暂停)

算法:复制算法,标志整理
算法的缺点就是:在垃圾回收的时候,会停止其他的线程

ParNew收集器(多线程版本)

ParNew 收集器其实就是 Serial 收集器的多线程版本。 算法和Serial一致

CMS收集器(多线程)

CMS(Concurrent Mark Sweep)收集器是一种以获取最短回收停顿时间为目标的收集器。目 前很大一部分的 Java应用都集中在互联网站或 B/S 系统的服务端上,这类应用尤其重视服务的响应速度,希望系统停顿时间最短,以给用户带来较好的体验。并发收集、低停顿,产生大量的空间碎片,并发节点吞吐率低。

算法:标记清理
在这里插入图片描述

G1收集器(多线程)

空间整合:G1 收集器采用标记整理算法不会产生内存空间碎片。分配大对象时不会因为无法找到连续空间而提前触发下一次 GC。

可预测的停顿: G1 除了追求低停顿外,还能建立可预测的停顿时间模型,能让使用者明确指定在一个长度为 N 毫秒的时间片段内。它将整个 Java 堆划分为多个大 小相等的独立区域(Region),触发垃圾回收,那些没有使用region仍然可以对外提供使用,就有效的避免了stop the world。

参数设置

-XX:+SurvivorRatio:设置 eden 区大小和 survivor 区大小的比例。
-XX:+PretenureSizeThreshold:设置大对象直接进入老年代的阈值。当对象的大小超过这个值时,将直接在老年代分配。
-XX:MaxTenuringThreshold:设置对象进入老年代的年龄的最大值。每一次 Minor GC 后,对象年龄就加 1。任何大于这个年龄的对象,一定会进入老年代。
-XX:+ParallelCMSThreads: 设定 CMS 的线程数量。
-XX:+MaxGCPauseMills:设置G1最大垃圾收集停顿时间。
-XX:+GCPauseIntervalMills:设置G1停顿间隔时间。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值