精华内容
下载资源
问答
  • Parallel ScavengeGC收集器

    2021-08-09 20:59:36
    Parallel Scavenge收集器 文章目录Parallel Scavenge收集器关注点:Parallel Scavenge 收集器提供了两个用于精准控制吞吐量一个是控制最大垃圾收集停顿时间的-XX:MaxGCPauseMillis参数以及直接设置吞吐量大小的-XX...

    Parallel Scavenge收集器


    Parallel Scavenge 收集器 是一款新生代收集器 同样是标记-复制算法实现的收集器

    也是可以进行并行手机的多线程收集器

    Parallel Scavenge的诸多特性从表面上来看和ParNew相似

    关注点:

    CMS收集器主要是尽可能地缩短垃圾收集时用户线程的停顿的时间 而Parallel Scavenge收集器的目标则是达到

    一个可控制的吞吐量 所谓吞吐量就是处理器用于运行 用户代码的时间

    在这里插入图片描述

    如果虚拟机完成某个和任务 用户代码加上垃圾收集总共耗费 100 min 垃圾收集花掉1min 那吞吐量就是99%

    停顿时间越短 越适合需要与用户交互或者保证服务响应的质量的程序 良好的相应速度能提升用户体验

    高吞吐量则是可以最高效率的充分利用处理资源 尽快完成程序的运算任务 主要适合在后台运算 不需要太需要交互分析任务

    Parallel Scavenge 收集器提供了两个用于精准控制吞吐量

    一个是控制最大垃圾收集停顿时间的-XX:MaxGCPauseMillis参数

    MaxGCPauseMillis参数允许的值是一个大于0的毫秒数,收集器尽力保证内存回收花费时间不超过用户设定值

    当然你不要想多了不要异想天开的认为如果把这个数的参数设置更小一点使得整个系统变得更快

    1、垃圾停顿时间的缩短是以牺牲吞吐量和新生代的空间为代价换来的

    2、系统把整个新生代调小的小一点 收集300M 肯定比收集500M快 这也直接导致了收集发生更频繁 原来十秒收集一次每次停顿100毫秒 现在变成5s收集一次 每次停顿70毫秒 停顿时间的确在下降 但是吞吐量也降下来了

    以及直接设置吞吐量大小的-XX:GCTimeRatio参数

    GCTimeRatio 参数的值则是当一个大于0小于100的整数 也就是i垃圾收集占总时间的比率相当于吞吐量的倒数

    譬如 把参数设置为19 允许最大的垃圾收集时间就占总是加你的 5% 即(1/(1+19)) 默认值是99 即最大的1% 即垃圾收集时间

    由于与吞吐量关系密切相关 Parallel Scavenge、 收集器还有一个参数-XX:+UseAdoptiveSizePolic值得关注

    1、这是一个开关参数 当这个参数被激活之后 就不需要人工指定Yang(新生代的大小)-Xmn 、Eden(伊甸园)与Survivor(幸存区比例) 、晋升老年代对象大小 等细节参数

    2、GC Ergonomics自适应策略:虚拟机会根据当前系统的运行情况收集性能监控信息 动态调整这些参数以及提供最合适的时间和最大吞吐量,这种调节方式称为垃圾收集的自适应调节策略

    手动调节很难 交给虚拟机去完成是一个不错的 选择 只需要把内存数据设置好 然后使用MaxGCPauseMillis参数 胡总和吞吐量给虚拟机设立一个优化目标 具体细节参数调节工作由虚拟机来完成

    s参数 胡总和吞吐量给虚拟机设立一个优化目标 具体细节参数调节工作由虚拟机来完成

    展开全文
  • 全称为Parallel Scavenge收集器。 HotSpot中,除了ParNew收集器是基于并行回收以外,Parallel Scavenge同样也采用了复制算法、并行回收和STW机制。 Parallel Scavenge的目标是达到一个可控制的吞吐量。 自适应调节...

    Parallel与Parallel Old垃圾回收器(学习笔记)

    简介

    全称为Parallel Scavenge收集器。
    HotSpot中,除了ParNew收集器是基于并行回收以外,Parallel Scavenge同样也采用了复制算法并行回收STW机制

    Parallel Scavenge的目标是达到一个可控制的吞吐量
    自适应调节策略也是Parallel Scavenge和ParNew的一个重要区别。

    高吞吐量则可以高效利用CPU时间,尽快完成运算任务,主要适合在后台运算而不需要太多交互的场景

    • 批量处理
    • 订单处理
    • 工资支付
    • 科学计算

    在这里插入图片描述

    Parallel Old收集器

    Parallel收集器再JDK1.6时提供了用于执行老年代垃圾收集的Parallel Old收集器,用来代替Serial Old收集器。
    Parallel Old收集器采用了标记-压缩算法,也同样基于并行回收STW机制

    JDK8中,Parallel和Parallel Old时默认的垃圾回收器。

    如何使用

    开启Parallel收集器

    +XX:UseParallelGC指明新生代中使用Parallel收集器。
    +XX:UseParallelOldGC指明老年代中使用Parallel Old收集器。
    以上两个参数会互相激活,即开启一个,另一个也默认开启。

    设置GC线程

    +XX:ParallelGCThreads设置年轻代并行收集器的线程。
    JVM在默认情况下:

    • 当CPU数量不大于8时,默认值为CPU数量
    • 当CPU数量大于8时,默认值为3+(5*CPU数量)/8【向下取整】
      • 例如:当CPU数量为12时,默认线程数为3+5*12/8=10

    设置暂停时间和吞吐量

    -XX:MaxGCPauseMillis设置垃圾回收器最大停顿时间,单位:毫秒。

    • 为了尽可能把停顿时间控制在设定时间以内,收集器工作时会调整Java堆的大小或一些其它参数
    • 对于用户来讲,停顿时间越短越好。但对于服务器而言,更注重高并发、吞吐量。
    • 该参数需要谨慎设置

    -XX:GCTimeRatio设置垃圾收集时间占总时间的比例1/(N+1),用户衡量吞吐量大小。具体而言,设置的为参数N。

    • N的取值范围:(0,100)。默认值为99,也就是垃圾回收时间不超过1%

    这两个参数存在一定的矛盾性。-XX:MaxGCPauseMillis越长,-XX:GCTimeRatio越容易超过设定的比例。

    自适应调节

    -XX:+UseAdaptiveSizePolicy设置Parallel收集器具有自适应策略。

    • 这种模式下,年轻代、伊甸园、幸存者区的比例会自动调整,已达到在堆大小、吞吐量和停顿时间的平衡点
    展开全文
  • Parallel Scavenge收集器

    2021-05-31 09:39:20
    Parallel Scavenge 特点 Parallel Scavenge收集器是一个新生代收集器,它也是使用【标记-复制】算法的收集器,并且并行的多线程收集。 CMS收集器 关注点是尽可能地缩短垃圾收集时用户线程的停顿时间 停顿时间越短...

    一、Parallel Scavenge 特点

    Parallel Scavenge收集器是一个新生代收集器,它也是使用【标记-复制】算法的收集器,并且并行的多线程收集。


    CMS收集器

    关注点是尽可能地缩短垃圾收集时用户线程的停顿时间

    • 停顿时间越短就越适合需要与用户交互的程序,良好的响应速度能提升用户体验。

    Parallel Scavenge

    收集器的目标则是达到一个可控制的吞吐量(Throughput)

    • 吞吐量是CPU用于运行用户代码的时间与CPU总消耗时间的比值,即吞吐量 = 运行用户代码时间 /(运行用户代码时间 + 垃圾收集时间),虚拟机总共运行了100分钟,其中垃圾收集花掉1分钟,那吞吐量就是99%。
    • 高吞吐量则可以高效率地利用CPU时间,尽快完成程序的运算任务,主要适合在后台运算而不需要太多交互的任务。

    二、Parallel Scavenge 参数

    Parallel Scavenge:收集器提供了几个参数用于精确控制吞吐量,分别是控制最大垃圾收集停顿时间的.

    -XX:MaxGCPauseMillis

    参数允许的值是一个大于0的毫秒数,收集器将尽可能地保证内存回收花费的时间不超过设定值。

    不过不要认为如果把这个参数的值设置得稍小一点就能使得系统的垃圾收集速度变得更快,GC停顿时间缩短是以牺牲吞吐量和新生代空间来换取的:系统把新生代调小一些,收集300MB新生代肯定比收集500MB快吧,这也直接导致垃圾收集发生得更频繁一些,原来10秒收集一次、每次停顿100毫秒,现在变成5秒收集一次、每次停顿70毫秒。停顿时间的确在下降,但吞吐量也降下来了。(因为回收的频率升高了)。

    -XX:GCTimeRatio

    参数的值应当是一个大于0且小于100的整数,也就是垃圾收集时间占总时间的比率,相当于是吞吐量的倒数。如果把此参数设置为19,那允许的最大GC时间就占总时间的5%(即1 /(1+19)),默认值为99,就是允许最大1%(即1 /(1+99))的垃圾收集时间。
    由于与吞吐量关系密切,Parallel Scavenge收集器也经常称为“吞吐量优先”收集器。

    -XX:+UseAdaptiveSizePolicy

    一个开关参数,当这个参数打开之后,就不需要手工指定新生代的大小(-Xmn)、Eden与Survivor区的比例(-XX:SurvivorRatio)、晋升老年代对象年龄(-XX:PretenureSizeThreshold)等细节参数了,虚拟机会根据当前系统的运行情况收集性能监控信息,动态调整这些参数以提供最合适的停顿时间或者最大的吞吐量,这种调节方式称为GC自适应的调节策略(GC Ergonomics)。

    如果读者对于收集器运作原来不太了解,手工优化存在困难的时候,使用Parallel Scavenge收集器配合自适应调节策略,把内存管理的调优任务交给虚拟机去完成将是一个不错的选择。

    只需要把基本的内存数据设置好(如-Xmx设置最大堆),然后使用MaxGCPauseMillis参数(更关注最大停顿时间)或GCTimeRatio(更关注吞吐量)参数给虚拟机设立一个优化目标,那具体细节参数的调节工作就由虚拟机完成了。自适应调节策略也是Parallel Scavenge收集器与ParNew收集器的一个重要区别。


    三、Parallel Old 收集器

    Parallel Scavage 收集器架构中本身有PS MarkSweep收集器来收集老年代,并非直接使用了Serial Old,但二者接近。本人win10 64位系统,jdk1.8.0_102,测试默认垃圾收集器为:**PS MarkSweep **和 PS Scavenge。 也就是说Java8的默认并不是G1。

    这是”吞吐量优先“,注重吞吐量以及CPU资源敏感的场合都可以优先考虑Parallel Scavenge和Parallel Old(PS Mark Sweep)。Java8 默认就是这个。
    在这里插入图片描述

    展开全文
  • 8.5.2. Parallel ScavengeParallel Old垃圾回收器组合 1)工作地点 Parallel Scavenge垃圾回收器工作在年轻代,而Parallel Old工作在老年代。 2)工作原理 当使用Parallel Scavenge垃圾回收器时:首先在用户线程...

    8.5.2. Parallel Scavenge和Parallel Old垃圾回收器组合

    1)工作地点
    Parallel Scavenge垃圾回收器工作在年轻代,而Parallel Old工作在老年代。
    2)工作原理
    当使用Parallel Scavenge垃圾回收器时:首先在用户线程处于安全的时候执行STW(stop-the-world),这个时刻称为安全点,执行STW时用户线程会暂停执行,同时会有多个线程来并行清理垃圾,垃圾清理的算法是Copying拷贝算法。
    当使用Parallel Old垃圾回收器时:首先在用户线程处于安全的时候执行STW(stop-the-world),这个时刻称为安全点,执行STW时用户线程会暂停执行,同时会有用户线程来并行清理垃圾,垃圾清理的算法是Compacting压缩算法。

    在这里插入图片描述

    3)Parallel Old采用标记压缩的原因
    Parallel Old垃圾回收器更注重于吞吐量,标记压缩算法是一种在垃圾回收时移动对象的算法,相较于标记清除等非移动式垃圾回收算法,虽然会由于STW耗时长而降低用户线程的执行效率,但是因节省了在内存分配和访问上时间(内存分配和访问的频率远高于垃圾回收的频率),所以总吞吐量就提高了。
    4)适用场景
    Parallel Scavenge和Parrallel Old垃圾回收器更适用于注重于吞吐量或处理器资源较为稀缺的场景。

    展开全文
  • 两者都是复制算法,都是并行处理,但是不同的是,paralel scavenge 可以设置最大gc停顿时间(-XX:MaxGCPauseMills)以及gc时间占比(-XX:GCTimeRatio) parallel scavenge 与parnew 区别
  • Parallel Scavenge是一款新生代垃圾收集器,我们非常有必要了解这款垃圾收集器,因为这款收集器可是JDK1.7和JDK1.8默认的新生代垃圾收集器。 对于新生代的垃圾回收一般都采用标记-复制算法,Parallel Scavenge也不...
  • parallel scavenge 与parnew 区别:

    千次阅读 2019-02-24 13:33:29
    Parallel Scavenge收集器是一个新生代收集器,它也是使用复制算法的收集器,又是并行的多线程收集器……看上去和ParNew都一样,那它有什么特别之处呢? Parallel Scavenge收集器的特点是它的关注点与其他收集器不同...
  • Parallel Scavenge收集器也是一款新生代收集器,基于标记-复制算法实现的收集器,也是能够并行收集的多线程收集器。其目标为达到一个可控制的吞吐量,所谓吞吐量,程序实际运行时间比上总时间,总时间为程序实际运行...
  • Parallel Scavenge垃圾收集器因为与吞吐量关系密切,也称为吞吐量收集器(Throughput Collector)。 1、特点 (A)、有一些特点与ParNew收集器相似 新生代收集器; 采用复制算法; 多线程收集; (B)、主要...
  • Parallel Scavenge: 是与ParNew类似,都是用于年轻代回收的使用复制算法的并行收集器,与ParNew不同的是,Parallel Scavenge的目标是达到一个可控的吞吐量,吞吐量=程序运行时间/(程序运行时间+GC时间),如程序...
  • ParallelScavenge收集器,是年轻代中除了ParNew以外的另一款垃圾收集器,同样采用了并行回收、复制算法和”StopTheWorld“机制。 那么它和ParNew的区别? 和ParNew收集器不同,ParallelScavenge收集器的目标是达到...
  • Parallel Scavenge收集器
  • JVM垃圾收集器-Parallel Scavenge收集器

    千次阅读 2019-01-14 08:44:14
    今天我给大家讲讲JVM垃圾收集器-Parallel Scavenge收集器 Parallel Scavenge收集器  Parallel Scavenge收集器也是一个新生代收集器,它也是使用复制算法的收集器,又是并行的多线程收集器,看上去和ParNew都一样...
  • 简介:Parallel Scavenge收集器讲解 是什么 Parallel Scavenge 收集器是⼀个新⽣代收集器,它也是使⽤复制算法的收集器,⼜是并⾏的多线程收集器 由于与吞吐量关系密切,Parallel Scavenge 收集器也经常称为“吞吐...
  • 一次线上对JDK默认垃圾回收器Parallel Scavenge垃圾回收器的简单调优实战。让Young GC和Full GC之间达到一个相对平衡状态。
  • Parallel Scavenge 收集器是个新生代收集器。它也是使用复制算法的收集器,又是并行的多线程收集器、、、、看上去和ParNew 都一样,那它有什么特别之处呢? Parallel Scavenge 收集器的特点是它关注的点和其他收集...
  • Parallel Scavenge收集器详解

    千次阅读 2014-11-18 22:56:40
    Parallel Scavenge收集器是一个新生代收集器,它也是使用复制算法的收集器,又是并行的多线程收集器……看上去和ParNew都一样,那它有什么特别之处呢? Parallel Scavenge收集器的特点是它的关注点与其他收集器不同...
  • Parallel Scavenge收集器的关注点与其他收集器不同, ParallelScavenge收集器的目标则是达到一个可控制的吞吐量(Throughput)。所谓吞吐量就是CPU用于运行用户代码的时间与CPU总消耗时间的比值...
  • Parallel Scavenge 收集器是⼀个新⽣代收集器,它也是使⽤复制算法的收集器,⼜是并⾏的 多线程收集器,由于与吞吐量关系密切,Parallel Scavenge 收集器也经常称为“吞吐量优先”收集器 吞吐量是什么?CPU⽤于运...
  • 在准备Java垃圾收集器和内存分配策略课件的过程中,看到Parallel Scavenge收集器与Serial收集器在Survivor区的使用策略还是有很大不同。本文对看到的Parallel Scavenge收集器的运行现象进行笔记。 本人开发环境的...
  • 测试垃圾收集器的收集速度: G1收集器: -Xms256m -Xmx256m -XX:+UseG1GC -XX:+PrintGCTimeStamps -XX:+PrintGCDetails ...Parallel Scavenge & Parallel Old -Xms256m -Xmx256m -XX:+UseG1GC...
  • parallel scavenge 收集器 参数GCTimeRatio

    千次阅读 热门讨论 2018-06-01 14:07:16
    parallel scavenge 收集器 参数GCTimeRatioGCTimeRatio参数的值应当是一个大于0且小于100的整数,也就是垃圾收集时间占总时间的比率,相当于是吞吐量的倒数。如果把此参数设置为19,那允许的最大GC时间就占总时间的5...
  • 对比Parallel Scavenge/Parallel Old与Serial/Serial Old内存分配策略区别
  • Parallel Scavenge收集器也是一款新生代收集器, 它同样是基于标记-复制算法实现的收集器, 也是能够并行收集的多线程收集器…Parallel Scavenge的诸多特性从表面上看和ParNew非常相似, 那它有什么特别之处呢?...
  • 按照《深入理解Java虚拟机》中测试内存分配与回收策略中的代码进行了测试, JDK8官方文档中JVM相关的文档... 测试代码如下,使用的是JDK8,默认的垃圾收集器是Parallel Scavenge+Parallel Old public class Te...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,431
精华内容 6,972
关键字:

parallelscavenge