GC之ParallelGC和ConcMarkSweepGC的理解

    可以先读这篇国外的文章,https://www.cubrid.org/blog/understanding-java-garbage-collection

                 

                                                                    图1 ParallelGC

               

                                                                    图2 CMS

    一直困惑ParaellGC与CMS的区别,今天看到这俩张图,突然觉得俩者的区别在于:

  1. ParaellGC是Stop the application,之后多个线程去收集可回收的内存,之后执行回收操作,关键点是:确认哪些内存可以回收、之后再回收,俩个操作都在Stop application后才执行的。
  2. CMS也是Stop the application,但是:初始标记,确认哪些内存可以被回收是与业务线程同时执行的;之后是重新标记阶段,这个阶段会Stop the application;之后是回收阶段,这个阶段是和业务线程同时执行着的。

CMS的也可以结合着看看这篇:https://www.cnblogs.com/Leo_wl/p/5393300.html

转载于:https://my.oschina.net/u/2518341/blog/1836661

Parallel Scavenge GCParallel 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 GCParallel Old GC都是基于并行的垃圾收集算法,它们的设计都是为了提高应用程序的吞吐量。Parallel Scavenge GC主要用于新生代的垃圾回收,而Parallel Old GC则主要用于老年代的垃圾回收。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值