分代收集算法、减少系统的停顿时间( STW )的算法(增量收集、分区算法)

本文介绍了分代收集算法,强调不同生命周期的对象适用不同收集方式,以提高垃圾回收效率。HotSpot VM中的年轻代和老年代分别采用复制和标记-清除/整理算法。接着,讨论了减少系统停顿时间的两种算法:增量收集,通过分阶段进行垃圾回收以减少停顿,但可能导致系统吞吐量下降;分区算法,将内存分割为小区间,灵活控制回收,以控制停顿时间。最后总结增量和分区算法的特点。
摘要由CSDN通过智能技术生成

一、分代收集算法

难道就没有-种最优算法吗?
回答:无,没有最好的算法,只有最合适的算法。

1、前面所有这些算法中,并没有一种算法可以完全替代其他算法,它们都具有自己独特的优势和特点。分代收集算法应运而生。

2、分代收集算法,是基于这样一个事实:不同的对象的生命周期是不一样的。因此,不同生命周期的对象可以采取不同的收集方式,以便提高回收效率。一般是把Java堆分为新生代和老年代,这样就可以根据各个年代的特点使用不同的回收算法,以提高垃圾回收的效率。

3、在Java程序运行的过程中,会产生大量的对象,其中有些对象是与业务信息相关,比如Http请求中的Session对象、线程、Socket连接,这类对象跟业务直接挂钩,因此生命周期比较长。但是还有一-些对象,主要是程序运行过程中生成的临时变量,这些对象生命周期会比较短,比如: String对象, 由于其不变类的特性,系统会产生大量的这些对象,有些对象甚至只用一次即可回收。

4、目前几乎所有的GC都是采用分代收集( Generational Collecting) 算法执行垃圾回收的。
在HotSpot中, 基于分代的概念,GC所使用的内存回收算法必须结合年轻代和老年代各自的特点。

(1)年轻代(Young Gen)
年轻代特点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值