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

来源:互联网 发布:zebra标签打印软件 编辑:程序博客网 时间:2024/06/05 18:58

我的读书笔记

Parallel Scavenge 收集器

​ Paralled Scavenge 收集器是一个新生代收集器,他也是使用复制算法的收集器,又是使用并行的多线程收集器。这个收集器的特点是他的关注点和其他的收集器不同。CMS等收集器的主要关注点是尽可能的缩短垃圾回收是用户线程的等待时间。而Paralled Scavenge收集器的主要目标是达到一个可控制的吞吐量。所谓吞吐量就是CPU运行用户代码的时间和CPU消耗的时间的比值,即吞吐量=运行用户代码时间/(运行用户代码时间+垃圾收集时间)
​ 停顿越短越适合用户交互程序,良好的响应时间可以提高用户的体验。而高吞吐量则可以高效的利用CPU时间,尽快的完成程序的运算任务,适合在后台运算而不需要太多的交互任务**。
Paralled Scavenge 收集器提供了两个参数用于精确控制吞吐量。分别是控制最大垃圾收集停顿时间的-XX:MaxGCPauseMillis ,以及直接设置吞吐量大小的-XX:GCTimeRatio 参数。

  • MaxGCPauseMills 参数允许的只是一个大于0的毫秒数,收集器尽可能的保证内存回收的时间不超过设定值。不过把这个参数设置的稍微小一些就能使得系统的垃圾回收更快一些。GC停顿时间缩短是用牺牲吞吐量和新生代空间来换取的
  • GCTimeRatio 参数的指应该是一个大于0,小于100的数,也就是垃圾回收时间占总时间的比例,相当于吞吐量的倒数。默认值是99 ,就是允许最大1%的垃圾收集时间

​ 由于与吞吐量的关系密切,Paralled Scavenge收集器也被称为“吞吐量优先”收集器, 此外 该收集器还有一个-XX:UseAdaptiveSizePolicy 的参数。当这个参数打开之后,就不需要手工指定新生代的大小(-Xmn)、Eden 和Survivor的比例(-XX:SurvivorRatio)、晋升老年代对象大小(-XX:PretenureSizeThreshold)等细节参数了。虚拟机会根据当前系统的运行情况监控信息,g动态调整这些参数以提供适合的停顿时间和吞吐量。这种调节方式被称为:GC自适应调节策略(GC Ergonomics)自适应策略也是Paralled Scavenge 收集器与PreNew 收集器的一个重要区别

原创粉丝点击