• Java-GC垃圾收集器


    1. Serial

      young generation

      “单线程”收集器,是指进行垃圾收集时,必须暂停其他所有工作线程,直到收集结束。是历史最悠久的收集器。

    2. Serial Old

      tenured generation

      Serial收集器的老年代版本,用途:可与Parallel Scavenge搭配使用;作为CMS收集器的后备预案。

    3. ParNew

      young generation

      是Serial收集器的多线程版本。青年代收集时不需要stop the world。

      调优参数:

        -XX:SurvivorRatio

        -XX:PretenureSizeThreshold

        -XX:HandlePromotionFailure

    4. Parallel Scavenge

      young generation

      GC自适应调优算法,注重吞吐量

      调优参数:

        -XX:GCTimeRatio    垃圾收集时间站总时间的比率,吞吐量的倒数

        -XX:MaxGCPauseMillis  最大垃圾收集停顿时间

    5. Parallel Old

      tenured generation

      Parallel Scavenge收集器的老年代版本,使用多线程的标记整理算法。

      在注重吞吐量以及CPU资源敏感的场合,都可使用Parallel Scavenge与Parallel Old组合

       

    6. CMS

      tenured generation

      一种以获得最短回收停顿时间为目标的收集器。 

        -XX:+UseConcMarkSweepGC     打开CMS

    7. G1

    垃圾收集器常用参数:

    参数                     描述                                            
    UseSerailGC  
    UseParNewGC  
    UseConcMarkSweepGC  
    UseParallelGC  
    SurvivorRatio 新生代中Eden区与Survivor区的容量比例,默认为8,Eden:Survivor=8:1
    PretenureSizeThreshold 晋升至老年代对象大小,大于则在老年代分配
    MaxTenuringThreshold 晋升至老年的年龄,经过一次Minor GC则加1,大于则进老年代
    UseAdaptiveSizePolicy 动态调整个区域大小及进入老年代年龄
    HandlePromotionFailure  
    ParallelGCThreads 并行GC内存回收线程数
    GCTimeRatio GC时间占总时间比率,默认99,即允许1%的GC时间。仅在Parallel Scavenge收集器生效
    MaxGCPauseMillis GC最大停顿时间。仅在Parallel Scavenge收集器生效
    CMSInitiatingOccupancyFraction CMS在年老代被使用多少后触发GC。默认68%,仅CMS
    UseCMSCompactAtFullCollection CMS收集后是否进行内存碎片整理,仅CMS
    CMSFullGCsBeforeCompaction CMS进行若干次收集后才进行内存碎片整理
       

     

     

  • 相关阅读:
    scala学习笔记(8)
    mysql复习(1)基本CRUD操作
    sql获得表主键信息
    C#缓存-依赖 CacheHelper
    MVC过滤器实现用户登录验证
    MVC过滤器
    MVC页面和表单
    在ASP.NET中基于Owin OAuth使用Client Credentials Grant授权发放Token
    MVC DbContext
    MVC数据注解
  • 原文地址:https://www.cnblogs.com/kisf/p/6961746.html
Copyright © 2020-2023  润新知