Parallel Scavenge是一款新生代垃圾收集器,我们非常有必要了解这款垃圾收集器,因为这款收集器可是JDK1.7和JDK1.8默认的新生代垃圾收集器。

对于新生代的垃圾回收一般都采用标记-复制算法,Parallel Scavenge也不例外,Parallel Scavenge也与ParNew收集器一样都是能够通过多线程并行收集的,那么Parallel Scavenge与ParNew相比有什么特别之处呢?

Parallel Scavenge的特别之处就在于它关注的是吞吐量,也就是运行代码时间与(运行代码时间+垃圾收集器时间)的比值,比如运行代码时间为99分钟,垃圾收集器运行时间为1分钟,那么吞吐量就是99%,追求高吞吐量可以最大程度的利用CPU资源完成运算的任务,这就比较适合关注后台运算,而与用户交互较少的场景。(CMS关注的是停顿时间)

Parallel Scavenge中提供了两个调整吞吐量相关的参数:

-XX:MaxGCPauseMillis

设置最大GC暂停时间的目标(以毫秒为单位)。这是一个软目标,并且JVM将尽最大的努力来实现它。默认情况下,没有最大暂停时间值。
下面的示例显示如何将最大目标暂停时间设置为500ms:
-XX:MaxGCPauseMillis = 500

当然你不能想当然的认为这个值设置的越小越好,你要知道Parallel Scavenge是如何做到控制停顿时间的?实际上就是简单的增加垃圾回收频率而已,也就是说你设置的停顿时间越短,垃圾回收的频率就会越频繁,比如:原来30秒一次垃圾回收,一次停顿2秒,现在由于设置的停顿时间为1秒,所以必须10秒执行一次垃圾回收,虽然停顿时间短了,但是吞吐量也低了。

-XX:GCTimeRatio

这个参数的值则应当是一个大于0小于100的整数,也就是垃圾收集时间占总时间的 比率,相当于吞吐量的倒数。譬如把此参数设置为19,那允许的最大垃圾收集时间就占总时间的5% (即1/(1+19)),默认值为99,即允许最大1%(即1/(1+99))的垃圾收集时间。

与Parallel Scavenge搭配使用的老年代垃圾收集器是Parallel Old,Parallel Old支持多线程并行收集,基于标记-整理算法实现,二者配合使用总比来说吞吐量要优于ParNew加CMS的组合。

JVM垃圾收集器详解之Parallel Scavenge相关推荐

  1. JVM垃圾收集器详解 CMS、G1、Shenandoah、ZGC

    上一篇我们讲解了一些垃圾回收的理论和一些基础的算法和思想,这一篇主要是jvm从古至今垃圾收集器的实现. 各垃圾回收器 注:有连线的代表他们可以互相配合使用. Serial和Serial Old收集器 ...

  2. GC之7大垃圾收集器详解(下)

    GC之7大垃圾收集器详解 目录 GC之CMS收集器 GC之SerialOld收集器 GC之如何选择垃圾收集器 GC之G1收集器 第一部分请参见: GC之7大垃圾收集器详解(上) 6. GC之CMS收集 ...

  3. GC之7大垃圾收集器详解(上)

    GC之7大垃圾收集器详解 目录 GC之7大垃圾收集器概述 GC之Serial收集器 GC之ParNew收集器 GC之Parallel收集器 GC之ParallelOld收集器 GC之CMS收集器 GC ...

  4. G1 垃圾收集器详解

    Garbage First(简称G1)收集器开创了收集器面向局部收集的设计思路和基于Region的内存布局形式.它是一款专门针对于拥有多核处理器和大内存的机器的收集器,在满足了GC响应时间的延迟可控的 ...

  5. JVM之垃圾收集算法和垃圾收集器详解

    这篇文章相比上一篇记录性的,多了不少我自己的理解,花费了很大的功夫整理,如果有时间和精力建议好好看一看深入理解JVM这本书. 也建议熟读背诵. JVM-垃圾收集器和内存分配策略 程序计数器.虚拟机栈. ...

  6. (七)Java垃圾收集器详解

    面试官问:Java垃圾收集器了解过多少,说一下 JVM 有哪些垃圾回收器?这些问题在你面试高级Java的时候经常会问到.本篇文章结合着[深入理解Java虚拟机]一书当中整理了本篇博客. 如果想要对收集 ...

  7. 深入理解Java虚拟机——JVM垃圾回收机制和垃圾收集器详解

    一:概述 说起垃圾回收(Garbage Collection,GC),很多人就会自然而然地把它和Java联系起来.在Java中,程序员不需要去关心内存动态分配和垃圾回收的问题,顾名思义,垃圾回收就是释 ...

  8. JVM之历代垃圾收集器详解

    JVM之历代垃圾收集器讲解 总览 分类 并行和并发 年轻代垃圾回收器 Serial收集器 特点 优点 缺点 PartNew收集器 特点: Parallel Scavenge收集器 特点 老年代垃圾回收 ...

  9. java 垃圾收集器_JVM垃圾收集器详解

    说起垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物.事实上,GC的历史远比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态 ...

  10. CMS垃圾收集器详解

    概述 CMS垃圾收集器是一款优秀的老年代并发垃圾收集器,通过与用户线程并发执行的方式减少GC停顿的时间.本文主要聊一下CMS设计到的相关的数据结构.具体的执行过程.运行中会出现的异常情况. 在CMS之 ...

最新文章

  1. 今天,向 6 女性程序员先驱致敬
  2. 【正一专栏】警察叔叔,我还是只是一个婴儿
  3. Android用GSon处理Json数据
  4. 数据结构之并查集:并查集的介绍与Python代码实现——18
  5. 多功能照片图片处理器小程序源码_支持流量主
  6. mac osx 下的 mysql_Mac OSX下的MySQL数据库升级
  7. Algorithm: 匈牙利算法
  8. 一个数据科学家对商学院的建议
  9. 本人为巨杉数据库(开源NoSQL)写的C#驱动,支持Linq,全部开源,已提交github
  10. [翻译]SQL Server 该做和不该做的
  11. 宿主机172连接容器mysql_开发时从宿主机连接容器中的MySQL
  12. MySQL 创建注册页面_网站添加注册/登录界面
  13. 阿里云运行python_使用阿里云运行python
  14. 离散数学知识点及错题集合 第七章
  15. fanuc机器人试题_工业机器人知识要点解析(FANUC机器人)
  16. 数据库中的主键与外键的关系
  17. 利用mysql客户端查询UCSC数据库
  18. HTML嵌入百度地图
  19. vue仿淘宝放大镜插件 vue-piczoom的使用问题
  20. 小程序开发问题之textarea层次问题

热门文章

  1. 2015年国际数学奥林匹克(IMO)试题
  2. 谷歌大数据三大论文中文版和英文版合集
  3. 什么是数据安全,为什么它很重要?
  4. python怎么爬虎牙_【python】虎牙直播爬虫项目
  5. c语言写的exe文件怎么改图标,c/c++修改exe文件图标
  6. 【大数据Spark系列】RDD编程创建和转换
  7. matlab中zi filtic b a,实验七离散系统分析的matlab实现.doc_蚂蚁文库
  8. win10 企业版 设备管理器找不到 端口(COM和LPT)
  9. 非QQ会员如何克隆好友
  10. python求派_python求π