蔡香满屋
站在牛顿头上吃苹果

  一般对象首次创建会被放置在新生代的eden区也就是伊甸园区,如果没有GC介入,则对象不会离开eden区,那么eden去的对象如何进入老年代的呢?正常来说,只有对象达到一定的大小,就会自动离开新生代进入老年代区,对象年龄是由对象经历数次GC决定的,在新生代每次GC之后如果对象没有被回收则年龄加1,虚拟机提供了一个参数来控制新生代对象的最大年龄,当超过这个年龄范围就会晋升老年代。

-XX:MaxTenuring Threshod,默认情况下为15.

总结:根据自己设置MaxTenuring Threshold参数,可以指定新生代对象经理多少次回收后进入老年代。

还有,大对象(新设古代een区无法装入时,也会直接进入老年代)。JVM里面有一个参数可以设置对象的大小超过在指定的大小之后,直接晋升为老年代

就是-XX:PretenureSizeThreshold

posted on 2019-07-15 22:00  蔡香满屋  阅读(1019)  评论(0)    收藏  举报