18-动态对象年龄判断+空间分配担保规则+老年代回收算法

本文介绍了Java HotSpot虚拟机的动态对象年龄判断策略,当对象在Survivor空间中达到一定比例时,可直接晋升至老年代。此外,文章还详细阐述了空间分配担保的概念,当老年代空间不足时,JVM如何根据HandlePromotionFailure参数决定进行Minor GC或Full GC。最后,讨论了老年代使用标记-整理算法的原因及其优缺点,强调优化JVM的目标是减少老年代的Full GC和提高系统运行效率。

​动态对象年龄判断

本文中用到的案例是接着上一篇文章继续的,如果有不清楚同学请先查看上一篇文章

为了能更好地适应不同程序的内存状况,HotSpot虚拟机并不是永远要求对象的年龄必须达到- XX:MaxTenuringThreshold才能晋升老年代,如果在Survivor空间中相同年龄所有对象大小的总和大于Survivor空间的一半,年龄大于或等于该年龄的对象就可以直接进入老年代,无须等到-XX:MaxTenuringThreshold中要求的年龄。

我们来看执行后的内存情况:

Heap
 def new generation   total 9216K, used 4316K [0x00000000fec00000, 0x00000000ff600000, 0x00000000ff600000)
  eden space 8192K,  52% used [0x00000000fec00000, 0x00000000ff037008, 0x00000000ff400000)
  from space 1024K,   0% used [0x00000000ff400000, 0x00000000ff4002d8, 0x00000000ff500000)
  to   space 1024K,   0% used [0x00000000ff500000, 0x00000000ff500000, 0x00000000ff600000)
 tenured generation   total 10240K,&nb
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值