大对象直接进入老年代

Posted mrwangsl666

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大对象直接进入老年代相关的知识,希望对你有一定的参考价值。

PretenureSizeThreshold参数只对Serial和ParNew两款收集器有效,Parallel Scavenge收集器不认识这个参数,Parallel Scavenge 收集器一般并不需要设置,如果遇到必须使用这个参数的场合,可以考虑ParNew加CMS的收集器的组合。

虚拟机采用分代的手机思想来管理内存,name对象回收时就必须能识别哪些对象应放在新生代,哪些对象应该放在老年代,为了做到这点,虚拟机给每个对象定义了一个对象年龄计数器。如果对象在Eden出生并经过第一次Minor GC后仍然存活,并且能被Survivor容纳的话,将被移动到Survivor区中,并且对象年龄设置为1,对象在Survivor区中没“熬过”一次Minor GC,年龄就增加一岁,当他的年龄增加增加到一定程度(默认是15岁),就会被晋升到老年代。对象晋升老年代的阈值,可以通过参数-XX:Max-TenuringThreshold设置。

以上是关于大对象直接进入老年代的主要内容,如果未能解决你的问题,请参考以下文章

新生代对象进入老年代的时机:

新生代对象进入老年代的时机:

FlinkFlink 写入 Clickhouse 大对象直接进入老年代 导致OOM

对象如何进入老年代的问题

java中什么样的对象能够进入老年代

JVM内存分配策略