码迷,mamicode.com
首页 > 其他好文 > 详细

JVM 对象分配

时间:2019-08-16 17:13:15      阅读:84      评论:0      收藏:0      [点我收藏+]

标签:uri   增加   内存分配   动态   eth   pre   失败   一半   大小   

JVM参数:

1)-Xmn: 新生代内存上限值

2)-Xms: 整个堆区初始内存分配的大小

3)-Xmx: 堆区内存的最大分配大小

4)-XX:SurvivorRatio: 决定eden与一个survivor大小之比

5)-XX:PretenureSizeThreshold: 大对象直接放入老年代,避免在Eden区和两个survivor区进行大量内存复制

6)-XX:MaxTenuringThreshold: 对象进入老年代的岁数,默认为15

担保机制:

   当对象无法放入survivor空间,对象将被直接放入老年代。  

   在发生Minor GC 之前,虚拟机会检查老年代最大可用连续空间是否大于新生代所有对象空间,如果成立,则Minor GC是安全的。否则,将检查是否设置允许担保失败,允许的话,检查可用空间是否大于历次晋升到老年代的对象的评价大小,如果大于,将进行Minor GC,否则,或者不允许担保失败,将进行一次Full GC。

长时间存活的对象将进入老年代:

   每经过一次minor GC,对象年龄将增加1岁,当超过XX:MaxTenuringThreshold时,进入老年代。

   且根据动态年龄判定机制,survivor空间中相同年龄的对象总大小达到survivor空间的一半时,所有岁数大于等于该年龄的对象将直接进入老年代。

JVM 对象分配

标签:uri   增加   内存分配   动态   eth   pre   失败   一半   大小   

原文地址:https://www.cnblogs.com/zncepup/p/11364909.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!