The Java HotSpot VM's GC

本文介绍了垃圾回收(GC)的几个主要特点,包括精确回收、代复制收集、并行年轻代收集器、标记压缩老对象收集器、并发标记扫描收集器及并行老年代收集器等。这些特性有助于提高内存管理和应用程序性能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

GC的主要特点:

一、精确

    1.所有内存中不可访问到的对象会被可靠的回收。

    2. 所有内存对象可被移动,允许内存压缩,从而消除内存碎片,提高内存可用性。

 

二、Generational Copying Collection

    1.与不是代垃圾回收器相比,加快了分配速度和整体回收效率;

    2.减少了用户能感知到的垃圾收集频率和时间。

    基于一个程序中大部分对象(大于95%)的生命周期很短这一事实,可在内存的某个区域放置新创建的对象,由于分配给新对象的空间是连续的,类似于栈的空间,所以分配速度很快,垃圾收集器要做的是更新指针和检查这块区域是否溢出。如果该区域已满,大部分对象已死,对于已死的对象不用做任何清理工作,只要把少数幸存的对象移动到另一个区域即可。

 

三、Parallel Young Generation Collector

    这是Server VM的默认垃圾收集器。

 

四、Mark-Compact Old Object Collector

    虽然代复制垃圾垃圾收集器能够有效的回收大部分对象,但是一些生命周期比较长的对象仍然积累在旧对象内存区。标记紧凑收集器遍历整个活动对象图,移动活动对象已填补已死对象留下的废弃区域,从而使内存更加紧凑。

 

五、Mostly Concurrent Mark-Sweep Collector

    减少旧代区域清理的暂停时间,这是通过在程序线程执行的同时进行大量的跟踪和清理工作实现的。

 

六、Parallel Old Generation Collector

    当前版本的HotSpot VM为旧代引入了并行标记紧凑垃圾收集器,这种垃圾收集器是为增大系统吞吐量而设计的,当开始回收时会暂停程序并同时启动很多线程来清理旧代中的区域。

 

一个垃圾收集器可由以上的几种垃圾收集算法组合而成,对于Young generation和Old generation采取适合该堆栈区域的算法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值