Serial,Parallel,CMS,G1四大GC收集器特点小结

原创 2015年09月28日 11:39:41


1.Serial收集器

一个单线程的收集器,在进行垃圾收集时候,必须暂停其他所有的工作线程直到它收集结束。
特点:CPU利用率最高,停顿时间即用户等待时间比较长。
适用场景:小型应用
通过JVM参数-XX:+UseSerialGC可以使用串行垃圾回收器。


2.Parallel收集器

采用多线程来通过扫描并压缩堆
特点:停顿时间短,回收效率高,对吞吐量要求高。
适用场景:大型应用,科学计算,大规模数据采集等。
通过JVM参数 XX:+USeParNewGC 打开并发标记扫描垃圾回收器。


3.CMS收集器

采用“标记-清除”算法实现,使用多线程的算法去扫描堆,对发现未使用的对象进行回收。
(1)初始标记
(2)并发标记
(3)并发预处理
(4)重新标记
(5)并发清除
(6)并发重置
特点:响应时间优先,减少垃圾收集停顿时间
适应场景:服务器、电信领域等。
通过JVM参数 -XX:+UseConcMarkSweepGC设置


4.G1收集器

在G1中,堆被划分成 许多个连续的区域(region)。采用G1算法进行回收,吸收了CMS收集器特点。
特点:支持很大的堆,高吞吐量
  --支持多CPU和垃圾回收线程
  --在主线程暂停的情况下,使用并行收集
  --在主线程运行的情况下,使用并发收集
实时目标:可配置在N毫秒内最多只占用M毫秒的时间进行垃圾回收
通过JVM参数 –XX:+UseG1GC 使用G1垃圾回收器

GC悲观策略之Parallel GC篇

先来看段代码: import java.util.ArrayList; import java.util.List; /** * -Xms30m -Xmx30m -Xmn10m -XX:+Use...
  • liuxiao723846
  • liuxiao723846
  • 2017年05月30日 09:16
  • 313

JVM调优:选择合适的GC collector

正文之前,先介绍一人:Jon Masamitsu。此人背景不详,不过他在SUN做的就是JVM,所以他的blog我认为是每一个想对JVM调优的人都应该读一读的。本文的很多观点和一些图也是取自他的blog...
  • macyang
  • macyang
  • 2013年03月28日 14:27
  • 5447

JVM调优:选择合适的GC collector (二)

ParallelGC 再来看看parallelGC的结果。 截取其中一段放大如下:JVM参数如下:java -jar -Xms10g -Xmx15g -XX:+UseParallelGC -XX:...
  • historyasamirror
  • historyasamirror
  • 2011年03月12日 21:57
  • 10493

浅谈CMS垃圾收集器与G1收集器

6、CMS收集器   CMS收集器是一种以获取最短回收停顿时间为目标的收集器。基于“标记-清除”算法实现,它的运作过程如下: 1)初始标记 2)并发标记 3)重新标记 4)并发清除   初始标记、从新...
  • oLinHao007
  • oLinHao007
  • 2015年10月04日 18:04
  • 6034

CMS收集器和G1收集器优缺点

CMS收集器是一种以获取最短回收停顿时间为目标的收集器,CMS收集器是基于“”标记--清理”算法实现的,整个过程分为四个步骤:   1. 初始标记             2. 并发标记     ...
  • qq_25396633
  • qq_25396633
  • 2017年06月09日 21:57
  • 3558

垃圾收集器Serial 、Parallel、CMS、G1

这里介绍4个垃圾收集器,如果进行了错误的选择将会大大的影响程序的性能。     时至今日,仍然有两个事情困扰着开发人员:垃圾收集(GC)和了解异性(程序猿的悲鸣),后者我确实不太了解,因为我被前者搞...
  • lijunwyf
  • lijunwyf
  • 2016年09月21日 11:05
  • 1087

CMS和G1的比较

cms四部曲 一、初始标记:此时标记需要用户线程停下来; 二、并发标记:此时标记可以和用户线程一起运行; 三、重新标记:此时标记需要用户线程停下来,主要母的是为了对并发标记的垃圾进行审核; 四、并发清...
  • ZhiweiChang
  • ZhiweiChang
  • 2017年09月21日 11:09
  • 436

G1,CMS及PARALLEL GC的比较

这篇文章正好接上前一年我们做的一次现实环境下不同GC算法性能比较的试验。这次我们仍然进行同样的试验,不过增加了对G1回收器的测试,并且在多个平台进行测试。今年我们测试的垃>圾回收器有如下几个:  ...
  • yjh314
  • yjh314
  • 2017年11月29日 19:06
  • 49

java垃圾回收那点事(二)究竟有多少GC

java的gc回收的类型主要有几种 UseSerialGC,UseConcMarkSweepGC,UseParNewGC,UseParallelGC,UseParallelOldGC,UseG1GC,...
  • raintungli
  • raintungli
  • 2013年09月10日 16:30
  • 8013

JAVA垃圾收集器之Serial收集器

1、特点 Serial收集器是JAVA虚拟机中最基本、历史最悠久的收集器,在JDK 1.3.1之前是JAVA虚拟机新生代收集的唯一选择。Serial收集器是一个单线程的收集器,但它的“单线程”的意义...
  • ffm83
  • ffm83
  • 2015年01月19日 14:03
  • 1570
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Serial,Parallel,CMS,G1四大GC收集器特点小结
举报原因:
原因补充:

(最多只允许输入30个字)