今天我给大家讲讲JVM垃圾收集器-Parallel Scavenge收集器

Parallel Scavenge收集器

       Parallel Scavenge收集器也是一个新生代收集器,它也是使用复制算法的收集器,又是并行的多线程收集器,看上去和ParNew都一样,那它有什么特别之处呢?

Parallel Scavenge收集器的特点是它的关注点与其他收集器不同,CMS等收集器的关注点尽可能地缩短垃圾收集时用户线程的停顿时间,而Parallel Scavenge收集器的目标是达到一个可控制的吞吐量。所谓吞吐量就是CPU用于运行用户代码的时间与CPU总消耗时间的比值,即吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间),如果虚拟机总共运行需要100分钟,其中垃圾收集花掉1分钟,那吞吐量就是99%。

停顿时间越短就越适合需要与用户交互的程序,良好的响应速度能提升用户的体验;而高吞吐量则可用最高效率地利用CPU时间,尽快地完成程序的运算任务,主要适合在后台运算而不需要太多交互的任务。

Parallel Scavenge收集器提供了两个参数用户精确控制吞吐量,分别是控制最大垃圾收集停顿时间的-XX:MaxGCPauseMillis参 数及直接设置吞吐量大小的-XX:GCTimeRatio参数。

MaxGCPauseMillis参数允许的值是一个大于0的毫秒数,收集器将尽力保证内存回收花费的时间不超过设定值。不过大家不要异想天开地认为如果把这个参数的值设置得稍小一点就能使得系统的垃圾收集速度变得更快,GC停顿时间缩短是以牺牲吞吐量和新生代空间来换取的:系统把新生代调小一些,收集300MB新生代肯定比收集500MB快吧,这也直接导致垃圾收集发生得更频繁一些,原来10秒收集一次、每次停顿100毫秒,现在变成5秒收集一次、每次停顿70毫秒。停顿时间的确在下降,但吞吐量也降下来了。

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

由于与吞吐量关系密切,Parallel Scavenge收集器也经常被称为“吞吐量优先”收集器。除上述两个参数之外,Parallel Scavenge收集器还有一个参数 -XX:+UseAdaptiveSizePolicy值得关注。这是一个开关参数,当这个参数打开之后,就不需要手工指定新生代的大小(-Xmn)、Eden与Survivor区的比例(-XX:SurvivorRatio)、晋升老年代对象年龄(-XX:PretenureSizeThreshold)等细节参数了,虚拟机会根据当前系统的运行情况收集性能监控信息,动态调整这些参数以提供最合适的挺短时间或最大的吞吐量,这个调节方式称为GC自适应的调节策略。

JVM垃圾收集器-Parallel Scavenge收集器相关推荐

  1. 【Android 内存优化】垃圾回收算法 ( 分代收集算法 | Serial 收集器 | ParNew 收集器 | Parallel Scavenge 收集器 | CMS 并发标记清除收集器 )

    文章目录 一. 分代收集算法 二. 垃圾回收器 / 收集器 ( GC ) 三. 串行收集器 ( Serial ) 四. ParNew 收集器 五. Parallel Scavenge 收集器 六. C ...

  2. Jvm垃圾收集器总结之 Parallel Scavenge 收集器

    Parallel Scavenge 收集器是个新生代收集器.它也是使用复制算法的收集器,又是并行的多线程收集器....看上去和ParNew 都一样,那它有什么特别之处呢? Parallel Scave ...

  3. Parallel Scavenge收集器:吞吐量优先

    Parallel Scavenge收集器,是年轻代中除了ParNew以外的另一款垃圾收集器,同样采用了并行回收.复制算法和"Stop The World"机制. 那么它和ParNe ...

  4. 27.垃圾收集器(Serial收集器、ParNew收集器、Parallel收集器、Parallel Old 收集器、CMS收集器、G1收集器、常用的收集器组合)

    27.垃圾收集器 27.1.Serial收集器 27.2.ParNew收集器 27.3.Parallel收集器 27.4.Parallel Old 收集器 27.5.CMS收集器 27.6.G1收集器 ...

  5. 【jvm我能讲两小时056】说说Parallel old收集器的特点以及使用场景?

    说说Parallel old收集器的特点以及使用场景? Parallel Old是Parallel Scavenge收集器的老年代版本, 支持多线程并发收集, 基于标记-整理算法实现 . 这个收集器 ...

  6. jvm系列二之GC收集器

    目录 参考 概念理解 并发和并行 吞吐量 GC垃圾收集器 Serial New收集器 Parallel New(并行)收集器 Parallel Scavenge(并行)收集器 Serial Old(串 ...

  7. (七)JVM成神路之GC分代篇:分代GC器、CMS收集器及YoungGC、FullGC日志剖析

    引言 在<GC基础篇>中曾谈到过分代以及分区回收的概念,但基础篇更多的是建立在GC的一些算法理论上进行高谈阔论,而本篇则重点会对于分代收集器的实现进行全面详解,其中会涵盖串行收集器.并行收 ...

  8. Serial Old收集器和Parallel Old收集器

    Serial Old收集器 Serial Old是 Serial收集器的老年代版本: 1.特点 针对老年代: 采用"标记-整理"算法(还有压缩,Mark-Sweep-Compact ...

  9. 我的读书笔记——Paralled Scavenge 收集器

    我的读书笔记 Parallel Scavenge 收集器 ​ Paralled Scavenge 收集器是一个新生代收集器,他也是使用复制算法的收集器,又是使用并行的多线程收集器.这个收集器的特点是他 ...

  10. Parallel Old收集器

    Parallel Old收集器是Parallel Scavenge收集器的老年代版本,使用多线程和"标记-整理算法"进行垃圾回收. 吞吐量优先

最新文章

  1. 深度学习入门课程学习笔记06 反向传播
  2. F5 LTM设备降级实战
  3. 去中心化多链钱包CoinU 30问(你想要的答案都在这里)
  4. CodeForces - 1480D1 Painting the Array I(贪心)
  5. Dubbo(RPC原理、Dubbo架构负载均衡配置方式)(1)
  6. 正则表达式学习笔记004--连字符和范围描述符的认识与应用
  7. Linux下文件的权限管理及网络连接
  8. c语言输入字符串做四则运算,C++字符串四则运算实例讲解
  9. 电子科技大学要多少分才能录取?
  10. add git 的文件 移除_【Git第八节】移除文件
  11. 啦啦外卖独立版42.0至尊版全开源含vue代码修复app没声音
  12. (三)表单操作——提交表单-添加name属性 e.detail.value获取表单数据
  13. 图神经网络(GNN)资源帖视频及必读论文
  14. 2022软件测试好学吗,大概要学多久?(附学习路线图)
  15. 前一段时间比较火的刷网课平台源码,带数据库和教程
  16. 智慧屏新品尝鲜:精致机身旗舰声画
  17. 1-5分钟上手自动化测试——Airtest+Poco快速上手
  18. STM32H743内部所有SRAM的使用
  19. 办公套件Office LTSC 2021中文
  20. 【报表开发】:BI---新视界---请休假个人报表

热门文章

  1. 用阿里云建站模版套餐云速成美站有没有可能不容易被seo抓取排名?
  2. windows修改mysql密码
  3. Matlab sym syms
  4. 蓝牙耳机能否用于台式计算机,为什么台式机不能连接蓝牙耳机?只要它就可以实现!-蓝牙耳机怎么连接电脑...
  5. 那个直播软件有软件测试课程,资讯详情-直播软件有哪些测试方法-柠檬班-自动化测试-软件测试培训-自学官网...
  6. 计算机毕业设计(附源码)python医院人事及科室病区管理
  7. 韶音耳机连不上电脑_骨传导耳机怎么连接电脑
  8. php socket accept,使用PHP Socket开发Yar TCP服务
  9. pytorch历史版本下载_Pytorch、Anaconda安装、Navidia版本更新
  10. [基础服务] 常用邮箱服务地址