zoukankan      html  css  js  c++  java
  • gc参数与算法

    -XX:SurvivorRatio 设置eden区大小和survivor区大小的比例
    -XX:NewRatio 新生代和老年代的比

    引用计数:Java未使用
    复制:新生代使用
    标记-清理:老年代使用
    标记-压缩

    收集器:
    串行收集器:-XX:+UseSerialGC 最古老、最稳定,效率高,收集垃圾时只执行GC线程,可能会出现较长时间的停顿 复制算法
    并行收集器:-XX:+ParNewGC 新生代并行,老年代串行 -XX:ParallelGCThreads 限制线程数量 复制算法
    Parallel收集器:类似ParNew,新生代复制算法,老年代标记-压缩,更加关注吞吐量,  -XX:UseParallelGC,老年代串行  -XX:UseParallelOldGC,老年代并行
    CMS收集器:Concurrent Mark Sweep 并发(gc线程与用户线程一起执行)标记清除,并发阶段会降低吞吐量,老年代收集器(新生代使用ParNew) -XX:UseConcMarkSweepGC 内存预留不够时,会导致concurrent mode failure,可以使用串行收集器作为后备 -XX:CMSInitiatingOccupancyFraction,设置GC的阈值,堆空间达到设定的阈值,进行回收
    CMS收集器:初始标记(根可以直接关联到的对象,速度快)-->并发标记(主要标记过程,标记全部对象)-->重新标记(停止用户进程,进行标记修正)-->并发清除(基于标记结果,直接清理对象)
    -XX:+UseCMSCompactAtFullCollection Full GC后,进行一次整理
    -XX:+CMSFullGCsBeforeCompaction 设置进行几次Full GC后,进行一次碎片整理
    -XX:ParallelCMSThreads 设定CMS的线程数量
    -XX:+CMSClassUnloadingEnabled 允许对类元数据进行回收
    -XX:CMSInitiatingPermOccupancyFraction 当永久区占有率达到这一百分比时,启动CMS回收
    -XX:UseCMSInitiatingOccupancyOnly 表示只有到达阈值的时候,才进行CMS回收

    -XX:MaxGCPauseMills 最大停顿时间,GC尽力保证回收时间不超过设定值
    -XX:GCTimeRatio 0-100的取值范围,垃圾收集时间占总时间的比,默认99,即最大允许1%时间做GC
    这两个参数是矛盾的,因为停顿时间和吞吐量不可能同时调优

  • 相关阅读:
    Git
    Shell-sed之替换字符
    Linux IO/NFS tunning 性能优化及检测
    利用Java Flight Recorder(JFR)诊断timing及内存问题
    Get/Post
    SQL-1
    HTTP协议简要
    nmap简单使用
    (C语言)买东西找零钱
    今日错误(C语言)(定义二维数组储存)
  • 原文地址:https://www.cnblogs.com/cyf18/p/14289250.html
Copyright © 2011-2022 走看看