Parallel Scavenge和Parallel Old垃圾回收器组合

8.5.2. Parallel Scavenge和Parallel Old垃圾回收器组合

1)工作地点
Parallel Scavenge垃圾回收器工作在年轻代,而Parallel Old工作在老年代。
2)工作原理
当使用Parallel Scavenge垃圾回收器时:首先在用户线程处于安全的时候执行STW(stop-the-world),这个时刻称为安全点,执行STW时用户线程会暂停执行,同时会有多个线程来并行清理垃圾,垃圾清理的算法是Copying拷贝算法。
当使用Parallel Old垃圾回收器时:首先在用户线程处于安全的时候执行STW(stop-the-world),这个时刻称为安全点,执行STW时用户线程会暂停执行,同时会有用户线程来并行清理垃圾,垃圾清理的算法是Compacting压缩算法。

在这里插入图片描述

3)Parallel Old采用标记压缩的原因
Parallel Old垃圾回收器更注重于吞吐量,标记压缩算法是一种在垃圾回收时移动对象的算法,相较于标记清除等非移动式垃圾回收算法,虽然会由于STW耗时长而降低用户线程的执行效率,但是因节省了在内存分配和访问上时间(内存分配和访问的频率远高于垃圾回收的频率),所以总吞吐量就提高了。
4)适用场景
Parallel Scavenge和Parrallel Old垃圾回收器更适用于注重于吞吐量或处理器资源较为稀缺的场景。

Parallel Scavenge GC和Parallel Old GC都是JVM中的垃圾回收,两者都是基于并行的垃圾收集算法。 Parallel Scavenge GC是专门为了提高应用程序的吞吐量而设计的。它的主要特点是在GC期间,尽量利用CPU资源来并行地处理垃圾回收Parallel Scavenge GC的主要策略是将堆内存划分为两个区域:一个是新生代,一个是老年代。在新生代区域中,Parallel Scavenge GC采用了复制算法,在垃圾回收时将存活的对象复制到另一个区域中,同时清空原来的区域,这样就达到了快速回收内存的目的。在老年代区域中,Parallel Scavenge GC采用了标记-整理算法,在垃圾回收时将存活的对象整理到一端,然后清理掉没有被标记的对象。 Parallel Old GC则是Parallel Scavenge GC的补充,它主要是为了解决老年代的垃圾回收问题。Parallel Old GC采用了标记-整理算法,在垃圾回收时将存活的对象整理到一端,然后清理掉没有被标记的对象。Parallel Old GC使用多个线程并行地进行垃圾回收,以达到快速回收内存的目的。Parallel Old GC还支持增量模式,在垃圾回收时可以与应用程序并发执行,减少了GC对应用程序的影响。 总的来说,Parallel Scavenge GC和Parallel Old GC都是基于并行的垃圾收集算法,它们的设计都是为了提高应用程序的吞吐量。Parallel Scavenge GC主要用于新生代的垃圾回收,而Parallel Old GC则主要用于老年代的垃圾回收
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值