• 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
    这两个参数是矛盾的,因为停顿时间和吞吐量不可能同时调优

  • 相关阅读:
    springmvc中@PathVariable和@RequestParam的区别
    Spring MVC 学习总结(一)——MVC概要与环境配置
    web中session与序列化的问题
    EL表达式
    JSTL自定义标签
    [c++][语言语法]stringstream iostream ifstream
    [C++][语言语法]标准C++中的string类的用法总结
    [数据库]数据库查询语句
    [c++][语言语法]函数模板和模板函数 及参数类型的运行时判断
    机器学习算法汇总
  • 原文地址:https://www.cnblogs.com/cyf18/p/14289250.html
Copyright © 2020-2023  润新知