ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Jvm垃圾收集器总结(ParNew收集器)

2021-07-04 18:30:06  阅读:193  来源: 互联网

标签:收集 收集器 线程 Jvm ParNew Serial CPU


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

ParNew / Serial Old 收集器运行示意图

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

不幸的是,CMS 作为老年代收集器,却无法与 JDK1.4 中已经存在的 Parallel Scavenge 配合工作①,所以在 JDK1.5 中使用 CMS 来收集老年代的时候,新生代只能选 ParNew 或者 Serial 中的一个。ParNew 收集器也是使用 -XX:UseConcMarkSweepGC 选项后的默认新生代收集器,也可以使用 -XX:UseParNewGC 来强制指定它。

ParNew 收集器在单 CPU 环境中绝对不会有比 Serial 收集器更好的效果,甚至由于线程交互的开销,该收集器在通过超线程技术实现的两个 CPU 的环境中都不能百分百保证超过 Serial 收集器。当然,随着可用 CPU 的数量增加,它对于 GC 时系统资源的利用还是很有好处的。它默认开启的收集线程数与 CPU 的数量相同,在 CPU 非常多(譬如 32 个,现在 CPU 动辄就 4 核加超线程,服务器超过 32 个逻辑 CPU 的情况越来越多了)的情况下,可以使用 -XX:ParallelGCThreads 参数来限制垃圾收集的线程数。

Tips

并发与并行:
从 ParNew 收集器开始,还有很多并发和并行收集器。并发和并行都是并发编程中的概念,在谈垃圾收集器的上下文语境中,它们可以解释如下。

  • 并行(Parallel)指多条垃圾收集线程并行工作,但此时用户线程处于等待状态。
  • 并发(Concurrent)指用户线程与垃圾收集线程同时执行(但不一定是并行的,可能是交替执行),用户程序在继续运行,而垃圾收集程序运行在另一个 CPU 上。

备注:
① Parallel Scavenge 收集器及后面的 G1 收集器都没有使用传统的GC收集器代码框架,而是另外独立实现,其余收集器则共用了部分框架代码,详细内容可以参考:http://blogs.sun.com/jonthecollector/entry/our_collectors

标签:收集,收集器,线程,Jvm,ParNew,Serial,CPU
来源: https://blog.csdn.net/wandou9527/article/details/118460920

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有