常用的 GC 参数

来源:互联网 发布:知呱呱 靠不靠谱 编辑:程序博客网 时间:2024/06/07 21:52
常用的 GC 参数
1.串行回收器相关参数
    -XX:+UseSerialGC    新生代和老年代都使用串行收集器
    -XX:+SurviviorRatio    设置 eden 区大小和survivior 区大小的比例
    -XX:PertenureSizeThreshold 设置大对象直接进入老年代的阈值,当对象的大小超过这个值时
                   直接进入老年代
    -XX:MaxTenuringThreshold 设置对象进入老年代年龄的最大值,每一个 Minor GC后,对象年龄
                  就增加 1 ,任何大于这个年龄的对象,一定会进入老年代
    
2.并行 GC 相关参数
    -XX:+UseParNewGCC    新生代使用并行收集器
    -XX:+UseParallelOldGC    老年代使用并行回收器
    -XX:ParallelGCThreads    设置用于垃圾回收的线程数,通常与CPU数量相等
    -XX:MaxGCPauseMillis    最大垃圾回收停顿时间
    -XX:GCTimeRatio        设置吞吐量,系统将花费不超过1/(1+n) 时间用于垃圾回收
    -XX:+UseAdaptiveSizePolicy    打开自适应 GC 策略

3.CMS 回收器相关的参数
    -XX:+UseConcMarkSweepGC    新生代使用并行收集器,老年代使用 CMS 收集器
    -XX:ParallelCMSThreads    设定 CMS 的线程数量
    -XX:CMSInitiatingOccupancyFraction    设置在老年代堆空间使用到多少时,触发GC ,默认是 68%
    -XX:+UseCMSCompactAtFullCollection    设置GC 收集器完成垃圾回收后是否进行一次内存碎片整理
    -XX:CMSFullGCsBeforeCompaction        设定多少次 CMS 回收后,进行一次内存压缩
    -XX:+CMSClassUnloadingEnabled        是否对 pren 区(元数据区)进行回收
    -XX:CMSInitiatingPermOccupancyFraction    当永久区占用达到这一百分比的时候出发CMS回收(前提:
                        -XX:+CMSClassUnloadingEnabled 已经激活)
    -XX:UseCMSInitiatingOccupangyOnly    达到阈值才进行 CMS 回收
    -XX:CMSIncrementalMode    使用增量模式,适合单CPU ,JDK1.8标记废弃,JDK1.9彻底移除

4.G1 回收器相关的参数
    -XX:+UseG1GC    使用G1回收器
    -XX:MaxGCPauseMillis    设置最大垃圾回收停顿时间
    -XX:GCPauseIntervaMillis    设置停顿间隔时间

5. TLAB 相关
    -XX:+UsrTLAB    使用TLAB 分配
    -XX:+PrintTLAB    打印TLAB 相关信息
    -XX:TLABSize    设置 TLAB 大小
    -XX:+ResizeTLAB    自动调整 TLAB 大小
    -XX:-ResizeTLAB    禁用自动调整 TLAB 大小
    -XX:TLABRefillWasteFraction    redill_waste值,当对象大于该值时直接分配在堆上,小于该值
                    废弃当前 TLAB ,建立一个新的 TLAB 分配对象。默认值时 64

6.其他参数
    -XX:DisableExplicitGC    禁用显式 GC
    -XX:ExplicitGCInvokesConcurrent    使用并发方式处理显式 GC

   
原创粉丝点击