美文网首页
常用 GC 参数

常用 GC 参数

作者: 寇夏寇夏 | 来源:发表于2017-05-18 15:34 被阅读0次

    与串行收集器相关的参数

    -XX:+ UseSerialGC: 在新生代和老年代使用串行收集器

    -XX: SurvivorRatio: 设置 eden 区大小和 survivior 区大小的比例。

     -XX: PretenureSizeThreshold: 设置大对象直接进入老年代的阈值。 当对象的大小超过这个值时, 将直接在老年代

    -XX: MaxTenuringThreshold: 设置对象进入老 年代的年龄的最大值。 每一 次MinorGC后, 对象年龄 就加1。任何 大于这个年龄的对象, 一定会进入老年代。

    与并行收集器相关的参数

    -XX:+ UseParNewGC: 在新生代使用并行收集器。

    -XX:+ UseParallelOldGC: 老年代使用并行回收收集器。

    -XX: ParallelGCThreads: 设置用于垃圾回收的线程数。 通过情况下可以和CPU数量相等, 但在 CPU 数量比较多的情况下, 设置相对较小的数值也是合理的。

    -XX: MaxGCPauseMillis: 设置最大垃圾收集停顿时间。它的值是一 个大 于 0 的整数。 收集器在工作时, 会调整 Java 堆大小或者其他一些参数, 尽可能地把停顿停顿时间控制在MaxGCPauseMillis 以内。

    -XX: GCTimeRatio: 设置吞吐量大小。 它的值是 一个 0 到 100 之间的整数。 假设 GCTimeRatio 的 值 为 n, 那么系统将花费 不超过 1/( 1+ n) 的 时间用于垃圾收集。

    -XX:+ UseAdaptiveSizePolicy: 打开自适应 GC 策略。 在这种模式 下, 新生代的大小、 eden 和 survivior 的比例、 晋升老年代的对象年龄等参数会被自动调整, 以达到在堆大小、吞吐量和停顿时间之间的平衡点

    与 CMS 收集器相关的参数

    -XX:+UseConcMarkSweepGC:新生代使用并行收集器,老年代使用CMS+串行收集器。

    -XX:ParallelCMSThreads:设定CMS的线程数量。

    -XX:CMSInitiatingOccupancyFraction:设置CMS收集器在老年代空间被使用多少后触发,默认为68%。(92%)

    -XX:+UseCMSCompactAtFullCollection:设置CMS收集器在完成垃圾收集后是否要进行一次内存碎片的整理。

    -XX:CMSFullGCsBeforeCompaction:设定进行多少次CMS垃圾回收后,进行一次内存压缩。

    -XX:+CMSClassUnloadingEnabled:允许对类元数据区进行回收。

    -XX:CMSInitiatingPermOccupancyFraction:当永久区占用率达到这一百分比时,启动CMS回收(前提是-XX:+CMSClassUnloadingEnabled激活了)。

    -XX:+CMSIncrementalMode:使用增量模式,比较适合单CPU。增量模式在JDK8中标记为废弃,并且将在JDK9中彻底移除。

    与 G1回收器相关的参数

    -XX:+UseG1GC:使用G1回收器。

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

    -XX:GCPauseIntervalMillis:设置停顿间隔时间。

    TLAB 相关

    -XX:+UseTLAB:开启TLAB分配。

    -XX:+PrintTLAB:打印TLAB相关分配

    -XX:TLABSize:设置TLAB大小。

    -XX:+ResizeTLAB:自动调整TLAB大小。

    相关文章

      网友评论

          本文标题:常用 GC 参数

          本文链接:https://www.haomeiwen.com/subject/srssxxtx.html