JVM垃圾收集器-ParNew收集器

今天我给大家讲讲ParNew收集器。

ParNew收集器

ParNew收集器收集器其实就是Serial收集器的多线程版本,除了使用多线程进行垃圾收集之外,其余行为包括Serial收集器可用的所有控制参数、收集算法、Stop The world、对象分配规则、回收策略等都与Serial收集器完全一样,实现上这两种收集器也共用了相当多的代码。ParNew收集器的工作过程如下图所示。

ParNew收集器除了多线程收集之外,其他与Serial收集器相比并没有太多创新之处,但它却是许多运行在Server模式下的虚拟机中首选的新生代收集器,其中有一个与性能无关但很重要的原因是,除了Serial收集器外,目前只有它能与CMS收集器配合工作。在JDK1.5时期,HotSpot退出了一款在强交互应用中几乎可成为有划时代意思的垃圾收集器————CMS收集器,这款收集器是HotSpot虚拟机中第一款真正意义上的并发收集器,它第一次实现了让垃圾收集线程与用户线程同时工作,用前面那个例子的话来说,就是做到来在你妈妈打扫房间的时候你还能同时往地上扔纸屑。

ParNew收集器在单CPU的环境中绝对不会有比Serial收集器更好的效果,甚至由于存在线程交互的开销,该收集器在通过多线程技术实现两个CPU环境中都不能百分百地保证能超越Serial收集器。当然,随着可用使用的CPU数量的增加,它对于GC时系统资源的利用还是很有好处的。它默认开启收集线程数与CPU的数量相同,在CPU非常多的环境下,可用使用-XX:ParallelGCThreads参数来限制垃圾收集单线程数。
---------------------
作者:柯之梦
来源:CSDN
原文:https://blog.csdn.net/yin4302008/article/details/86409954
版权声明:本文为博主原创文章,转载请附上博文链接!

原文地址:https://www.cnblogs.com/yinhongke/p/10262197.html

时间: 2024-10-05 12:17:11

JVM垃圾收集器-ParNew收集器的相关文章

JAVA垃圾收集器之ParNew收集器

1.特点 ParNew收集器是JAVA虚拟机中垃圾收集器的一种.它是Serial收集器的多线程版本,除了使用多条线程进行垃圾收集之外,其余行为包括Serial收集器可用的所有控制参数(例如:-XX:SurvivorRatio.-XX:PretenureSizeThreshold.-XX:HandlePromotionFailure等).收集算法.Stop The World.对象分配规则.回收策略等都与Serial收集器一致. 2.现状 ParNew是许多运行在Server模式下的虚拟机中首选的

JVM快速调优手册之五: ParNew收集器+CMS收集器的产品案例分析(响应时间优先)

服务器 双核,4个cores; 16G memory [[email protected] ~]# cat /proc/cpuinfo | grep "cpu cores" cpu cores : 2 cpu cores : 2 公式简述 响应时间优先的并发收集器,主要是保证系统的响应时间,减少垃圾收集时的停顿时间.适用于应用服务器.电信领域等. ParNew收集器 ParNew收集器是Serial收集器的多线程版本,许多运行在Server模式下的虚拟机中首选的新生代收集器,除Seri

jvm笔记2--垃圾收集器与内存分配策略

垃圾收集器与内存分配策略 Java运行时,内存的各个部分中,程序计数器,虚拟机栈,本地方法栈3个区域随线程而生,随线程而灭:栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈的操作.每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的.因此这几个区域不需要过多考虑回收的问题,因为线程结束时,内存自然就跟着回收了. Java堆和方法区不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多个分支需要的内存也可能不一样,只有在程序运行期间才知道会创建哪些对象,这部分内存的分配

jvm笔记-02-垃圾收集器与内存分配策略

[TOC] 对象的生存与死亡 如何判定一个对象的生与死 引用计数法 Reference Counting 给对象中添加一个引用计数器,被引用加1,引用失效减1,计数器为0则对象可以被回收. 缺点:很难解决对象之间互相循环引用的问题. 可达性分析法 Reachability Analysis 通过一系列 GC Roots 的对象作为起点,向下搜索,遍历路径称为引用链.当一个对象到 GC Roots 不可达时,证明此对象是不可用的. GC Roots对象包括: 虚拟机栈中引用的对象 方法区中静态常量

ParNew收集器

ParNew收集器其实就是Serial收集器的多线程版本,除了使用多条线程进行垃圾收集之外,其余行为包括Serial收集器可用的所有控制参数,其中Par是Paralle简写l 并行(Parallel):指多条垃圾收集线程并行工作,但此时用户线程仍然处于等待状态. 并发(Concurrent):指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能会交替执行),用户程序在继续运行,而垃圾收集程序运行于另一个CPU上.

【JVM】垃圾收集器和收集器的选择策略

前言:新生代的收集器有:Serial,ParNew,Parallel Scavenge等.老年代有:CMS,SerialOld,Paraller Old等.接下来将深入理解各个垃圾收集器的原理,以及它们如何在不同场景下进行搭配使用. 同时,先解释几个名次: 并行(Parallel):多个垃圾收集线程并行工作,此时用户线程处于等待状态 并发(Concurrent):用户线程和垃圾收集线程同时执行 吞吐量:运行用户代码时间/(运行用户代码时间+垃圾回收时间) (一) 新生代的收集器们 (1) Par

JVM垃圾收集器-Serial收集器

今天我给大家分享的是Serial收集器,垃圾收集器就是内存回收的具体实现.Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商,不同的版本的虚拟机所提供的垃圾收集器都可能会有很大的差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器,这里讨论的收集器基于Sun HotSpot虚拟机1.6版Update22,这个虚拟机包含的所有的收集器如图所示. ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ?上图展示了7种作用

JVM垃圾收集器-G1收集器

G1收集器是当前收集器技术发展的最前沿成果,在JDK1.6_Updata14中提供了Early Access版本的G1收集器以供适用.G1收集器是垃圾收集器理论进一步发展的产物,它与前面的CMS收集器相比有两个显著的改进:一是G收集器是基于"标记-整理"算法实现的收集器,也就是说它不会产生碎片,这对于长时间运行的应用系统来说比较重要.二是它可以非常精确地控制停顿,既能让使用者明确指定爱一个长度为M毫秒的时间片段内,消耗在垃圾收集上的时间不得超过N毫秒,这几乎已经是实时Java的垃圾收集

JAVA垃圾收集器之CMS收集器

1.特点 CMS收集器是JAVA虚拟机中垃圾收集器的一种.它运行在JAVA虚拟机的老年代中.CMS是(Concurrent MarkSweep)的首字母缩写.CMS收集器是一种以获取最短回收停顿时间为目标的收集器.比较适用于互联网等场合,可能是互联网中最重要的收集器模式: 2.优点 由于整个过程中耗时最长的并发标记和并发清除过程中,收集器线程都可以与用户线程一起工作,所以总体上来说,CMS收集器的内存回收过程是与用户线程一起并发地执行的.因此CMS是一款优秀的收集器,具备了并发收集.低停顿的优点