美文网首页
JVM ygc相关flag

JVM ygc相关flag

作者: Foghost | 来源:发表于2020-03-09 15:15 被阅读0次

-XX:NewSize -XX:MaxNewSize -XX:NewRatio

年轻代大小的上限和下限,年轻代是不允许比老年代大的,因为极端情况下有可能需要将年轻代的所有对象移入到老年代,所以-XX:MaxNewSize的上限是-Xmx/2-XX:NewRatio提供了一个相对于老年代来设定年轻代的方法,-XX:NewRatio=2即表示老年代与年轻代的比例是2:1,即年轻代的大小是1/3堆。

如果我们同时设定绝对值和相对值,则可以为相对值设定一个上限和下限,如-XX:NewSize=100m -XX:MaxNewSize=1024m -XX:NewRatio=3,意思为设定年轻代为总堆的1/4,但是上限和下限分别为1024m和100m。

-XX:SurvivorRatio

年轻代幸存区占年前代的比例,例如-XX:SurvivorRatio=8则是设置Eden区域与幸存区的比例为8,因为有两个幸存区,则eden:from:to的比例是8:1:1。

-XX:+PrintTenuringDistribution

每次ygc时打印幸存空间中包含的所有对象的年龄分布。例:

[ParNew
Desired survivor size 107347968 bytes, new threshold 3 (max 3)
- age   1:     607728 bytes,     607728 total
- age   2:        120 bytes,     607848 total
- age   3:        808 bytes,     608656 total

-XX:InitialTenuringThreshold -XX:MaxTenuringThreshold -XX:TargetSurvivorRatio

InitialTenuringThresholdMaxTenuringThreshold是年轻代晋升老年代经历ygc次数阈值的初始值和最大值,当然这个值jvm会在gc的过程中不断调整,这里只是设置边界值而已。TargetSurvivorRatio则是指定动态计算新阈值的时机,默认是50%。

-XX:+NeverTenure and -XX:+AlwaysTenure

两个测试性标志,NeverTenure是使年轻代永远不要晋升,AlwaysTenure则相反,是年轻代的对象直接晋升到老年代,这个标志会导致幸存区无用,所有对象经过一次ygc后直接晋升进老年代。这两个标志基本不会用到,如果你想用,最好先反思下能否从代码上解决问题。

-XX:+-UseAdaptiveSizePolicy

动态计算新生代eden和幸存区大小,这个参数在jdk8开启CMS垃圾回收器时是默认关闭且无法开启的,大多数情况不用考虑。

相关文章

  • JVM ygc相关flag

    -XX:NewSize -XX:MaxNewSize -XX:NewRatio 年轻代大小的上限和下限,年轻代是不...

  • JVM内存相关flag

    -Xms -Xmx (or: -XX:InitialHeapSize -XX:MaxHeapSize) -Xms ...

  • 探索StringTable提升YGC性能

    很久很久以前看过笨神的一篇文章JVM源码分析之String.intern()导致的YGC不断变长,其原因是YGC过...

  • 面试题: parnew+cms 如何保证只做 ygc

    一个面试题: parnew + cms 如何保证只做 ygc,jvm参数要如何配置? 思路:要做到没有 full ...

  • JAVA堆外内存的简介和使用

    最近看了一篇文章《蚂蚁消息中间件 (MsgBroker) 在 YGC 优化上的探索》。 文章涉及JVM的垃圾回收,...

  • 频繁操作本地缓存导致YGC耗时过长

    某天,某位群友在JVM讨论群里发来一张GC log的图片。 其中主要的问题是YGC过长,每次耗时约为200ms。 ...

  • JVM参数设置、分析

    不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参...

  • JVM参数设置、分析

    不管是YGC还是Full GC,GC过程中都会对导致程序运行中中断,正确的选择不同的GC策略,调整JVM、GC的参...

  • JVM源码分析之跨代引用CardTable

    简书 占小狼转载请注明原创出处,谢谢 在上篇文章《JVM源码分析之YGC的来龙去脉》中提到了跨代引用dirty c...

  • JVM参数 verbose xmx

    最近在跟着“你假笨” 学习JVM,对垃圾回收这块有了翻天覆地的认识(怪之前学的太浅)。比如 YGC 仍然会 STO...

网友评论

      本文标题:JVM ygc相关flag

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