Java垃圾回收器(一)新生代垃圾收集器

一、概述

        新生代与老年代进行垃圾回收时,会使用不同的垃圾回收期。这里举出常用的垃圾回收器。如图:

基本概念与关键点

1:常见的垃圾 回收器有上面七种 Serial、ParNew、ParallerScavenge、Serial 0ld 、 Paraller Old、CMS ,G1 . 其中Serial、ParNew、ParallerScavenge多发生在年轻代,Serial 0ld 、 Paraller Old、CMS发生在老年代。G1均有可能发生。

2:stop-the-world:JVM要执行GC而临时停止应用程序的执行;任何一种GC算法中都会发生;GC可以通过优化stop-the-world发生时间来提高程序性能

3:jvm运行模式:server:采用重量级jvm启动慢,稳定后快,client:采用轻量级jvm

4:老年代与新生代收集器可以搭配使用,按照上图连线为例。

5:可通过jvm参数配置使用哪张收集器。如:

-XX:+UseSerialGC

-XX:+UseParNewGC

-XX:+UseParallelGC

6:safepoint (安全点):假如一边清理垃圾,一边丢垃圾,这种情况是混乱且不可取的。应该定义清理垃圾的时间点,不能丢垃圾。

安全点:GC算法能够分析对象的时间点。

安全点设置过多,会影响程序执行效率,设置过少,会增加GC等待时间。

二、新生代收集器

1:serial收集器

  • serial收集器:单线程收集,垃圾收集时必须暂停其他线程,简单高效,client下默认的年轻代收集器(复制算法,-XX:+UseSerialGC)

2、ParNew收集器

  • ParNew收集器:多线程,其余特点和serial一样,server模式下jvm首选年轻代收集器,多核有优势(复制算法,暂停其他线程,-XX:+UseParNewGC)

3、ParallelScavenge收集器

  • ParallelScavenge收集器:比起用户停顿时间,更关注系统吞吐量;多核有优势,server模式下默认年轻代收集器(-XX:+UseParallelGC,复制算法,暂停其他线程)(-XX:+UseAdaptiveSizePolicy ,自适应调节策略)

    吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值