GC参数

串行回收器:
-- 古老、稳定、效率高、 单线程回收
-- 可能产生较长停顿
-- 开启使用:-XX:+UseSerialGC
-- 使用场所:新生代(复制算法)、老年代( 标记-压缩

并行回收器:
--   多线程(不一定快,单核CPU不会变快,切换线程上下文需要时间)
--   标记-压缩算法
-- 开启使用:
     新生代并行收集器
    parNew:
        -XX:+UseParNewGC   新生代使用并行,老年代使用串行
        需要多核支持
      Parallel收集器
    ParallelGC:
         -XX:+UseParallelGC     新生代使用并行,老年代使用串行
        -XX:+UseParallelOldGC    新生代使用并行,老年代使用并行

并发收集器(CMS)
--   并发的标记清除算法(产生碎片)
-- 理论上 GC和应用程序同时执行,不会停顿
-- 停顿减少,吞吐量减少(CPU要一边分配资源给应用程序,一边分配资源给GC)、清理不彻底(用户一边产生垃圾,一边清理)、产生内存碎片
-- 用于 老年代
-- 算法步骤:
        1.初始标记
              产生全局停顿,速度快,跟对象能直接关联的对象都标记
        2.并发标记
            和应用程序线程一起 并发执行,标记所有关联对象
        3.重新标记
               产生全局停顿,速度快 ,修正标记
        4.并发清除
              和应用程序线程一起并发执行,清除未标记对象
        5.整理碎片
            产生全局停顿,可能时间长,整理内存碎片

并发收集器(G1)

-- 使用: 

    XX:+UseG1GC -Xmx32g -XX:MaxGCPauseMillis=200

    其中-XX:+UseG1GC为开启G1垃圾收集器,-Xmx32g 设计堆内存的最大内存为32G,-XX:MaxGCPauseMillis=200设置GC的最大暂停时间为200ms。

-- 分代回收(eden、survivor、tunured区再细分,加上 humongous区
-- 理论上GC和应用程序同时执行,不会停顿
-- 新生代GC仍然全局暂停,老年代GC通过移动内存块进行回收,避免了内存碎片
--   巨型对象放在humongous区
G1的两种模式:
    1.G1 young GC(对eden区进行GC,survivor区from到to,to到tunured,最终eden为空)
    2.G1 Mix GC(对新生代、老年代进行GC)
        全局并发标记、拷贝存活对象、三色标记扫描引用
        由于并发执行,容易产生引用扫描错漏,引进修改记录





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值