美文网首页
JVM 参数笔记(四)新生代垃圾回收

JVM 参数笔记(四)新生代垃圾回收

作者: Minstrel_a7ca | 来源:发表于2018-07-13 18:42 被阅读0次

-XX:NewSize and -XX:MaxNewSize

设置新生代的大小,不允许比老年代的内存大。最大值为最大堆内存的1/2。

-XX:NewRatio

设置新生代和老年代的比例。
例如java -XX:NewRatio=2,设置了新生代大小/老年代大小=2,新生代/堆 =2/3,老年代/堆=1/3。
如果同时定义了绝对值和相对值,绝对值将起作用。

java -XX:NewSize=32m -XX:MaxNewSize=512m -XX:NewRatio=3 MyApp
以上设置, JVM 会尝试为新生代分配四分之一的堆大小,但不会小于32MB或大于521MB

-XX:SurvivorRatio

作用于新生代内部区域。指定伊甸园区(Eden)与幸存区(指单个幸存区)大小比例。
例如java -XX:SurvivorRatio=10 MyApp,表示伊甸园区(Eden)是 幸存区To 大小的10倍(也是幸存区From的10倍)。所以,伊甸园区(Eden)占新生代大小的10/12, 幸存区From和幸存区To 每个占新生代的1/12 .注意,两个幸存区永远是一样大的。

总之,我们希望最小化短命对象晋升到老年代的数量,同时也希望最小化新生代GC 的次数和持续时间.我们需要找到针对当前应用的折中方案, 寻找适合方案的起点是 了解当前应用中对象的年龄分布情况。

-XX:+PrintTenuringDistribution

JVM在每次新生代GC时,输出幸存区年龄分布。

例如:
Desired survivor size 75497472 bytes, new threshold 15 (max 15)
- age 1: 19321624 bytes, 19321624 total
- age 2: 79376 bytes, 19401000 total
- age 3: 2904256 bytes, 22305256 total
第一行说明幸存区To大小为 75 MB. 也有关于老年代阀值(tenuring threshold)的信息, 老年代阀值,意思是对象从新生代移动到老年代之前,经过几次GC(即, 对象晋升前的最大年龄). 上例中,老年代阀值为15,最大也是15.

-XX:InitialTenuringThreshold, -XX:MaxTenuringThreshold and -XX:TargetSurvivorRatio

通过 -XX:InitialTenuringThreshold 和 -XX:MaxTenuringThreshold 可以设定老年代阀值的初始值和最大值。另外,可以通过参数 -XX:TargetSurvivorRatio 设定幸存区的目标使用率.例如 , -XX:MaxTenuringThreshold=10 -XX:TargetSurvivorRatio=90 设定老年代阀值的上限为10,幸存区空间目标使用率为90%。

有多种方式,设置新生代行为,没有通用准则。我们必须清楚以下2中情况:
1 如果从年龄分布中发现,有很多对象的年龄持续增长,在到达老年代阀值之前。这表示 -XX:MaxTenuringThreshold 设置过大
2 如果 -XX:MaxTenuringThreshold 的值大于1,但是很多对象年龄从未大于1.应该看下幸存区的目标使用率。如果幸存区使用率从未到达,这表示对象都被GC回收,这正是我们想要的。 如果幸存区使用率经常达到,有些年龄超过1的对象被移动到老年代中。这种情况,可以尝试调整幸存区大小或目标使用率。

相关文章

  • JVM 参数笔记(四)新生代垃圾回收

    -XX:NewSize and -XX:MaxNewSize 设置新生代的大小,不允许比老年代的内存大。最大值为最...

  • JVM学习笔记(3)-垃圾收集算法

    JVM学习笔记(1)-内存管理机制 JVM学习笔记(2)-内存分配与回收 垃圾收集算法 JVM垃圾收集算法有四种:...

  • jvm参数

    垃圾回收期 JVM参数说明

  • jvm参数

    常用的JVM参数 跟踪JAVA虚拟机的垃圾回收 GC日志:jvm垃圾回收,记录jvm的运行状态,oom内存溢出的报...

  • jvm垃圾清理机制

    更多参考GC及JVM参数浅析JAVA的垃圾回收机制(GC)JVM系列三:JVM参数设置、分析jvm系列 (二) -...

  • java虚拟机回收机制

    ps: 参考 jvm机制 jvm的新生代里为什么有两个Survivor区FullGC优化实战 JVM 垃圾回收器工...

  • Java - JVM配置参数

    1.配置JVM 配置打印内存信息 运行打印出 2.各区参数 这是使用默认的垃圾回收器的参数,不同垃圾回收器回收策略...

  • JVM垃圾回收算法

    Java基础:JVM垃圾回收算法 [toc] 参考:Java基础:JVM垃圾回收算法图解JVM垃圾回收算法 总结:...

  • 常见虚拟机垃圾收集器总结

    HotSpot jvm收集器 一些垃圾回收常见参数设置:

  • JVM垃圾回收与调优

    1.jvm内存分配与回收 1.1 对象优先在Eden区分配 新生代GC(Minor GC):指发生新生代的垃圾收集...

网友评论

      本文标题:JVM 参数笔记(四)新生代垃圾回收

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