JVM基础(7)——ParNew垃圾回收器

作者简介:大家好,我是smart哥,前中兴通讯、美团架构师,现某互联网公司CTO

联系qq:184480602,加我进群,大家一起学习,一起进步,一起对抗互联网寒冬

学习必须往深处挖,挖的越深,基础越扎实!

阶段1、深入多线程

阶段2、深入多线程设计模式

阶段3、深入juc源码解析

阶段4、深入jdk其余源码解析

阶段5、深入jvm源码解析

一、简介

ParNew是目前最常用的JVM垃圾回收器之一,主要应用在 新生代 的GC中。ParNew采用了多线程垃圾回收机制,ParNew垃圾回收器在执行Minor GC时,会将JVM中的工作线程全部停止掉,禁止程序在运行时创建新的Java对象,然后自己用多个垃圾回收线程去进行垃圾回收,回收的机制和算法跟前面章节介绍的一样。

二、使用方式

通过JVM的参数设置,可以显式指定使用ParNew作为新生代的垃圾回收器。-XX:+UseParNewGC,只要加入这个选项,JVM启动之后就会使用ParNew进行新生代的垃圾对象回收。

默认情况下,ParNew设置的回收线程数与机器的CPU核心数相同。也就是说,假如我们线上的机器是8核,那么此时ParNew的垃圾回收线程数就是8个。比如下图,每个GC线程都通过一个CPU在运行:

线程数一般不需要手动设置,保持跟CPU核心数一致就可以充分进行并行处理。假如一定要手动设置,则使用-XX:ParallelGCThreads参数设置。

三、适用场景

我们上一章还提到过一种垃圾回收器——Serial,Serial是一种单线程的垃圾收集器,生产环境的服务端应用基本不会使用该收集器,但是有一类Java应用还是可能会用到Serial,即客户端Java应用,比如百度云盘的Windows客户端、印象笔记的Windows客户端等等。

由于客户端Java应用一般运行在PC上,且很多PC还是单核的,所以如果采用ParNew进行垃圾回收,就会导致一个CPU运行多个线程,此时会出现频繁的上下文切换,反而加重了性能开销,可能效率还不如单线程好。

所以,在使用ParNew作为生产环境的垃圾回收器时,记得使用-server指定为服务端模式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/237179.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kafka(四)Broker

目录 1 配置Broker1.1 Broker的配置broker.id0listererszookeeper.connectlog.dirslog.dir/tmp/kafka-logsnum.recovery.threads.per.data.dir1auto.create.topics.enabletrueauto.leader.rebalance.enabletrue, leader.imbalance.check.interval.seconds300, leader.imbalance…

Redis之集群方案比较

哨兵模式 在redis3.0以前的版本要实现集群一般是借助哨兵sentinel工具来监控master节点的状态,如果master节点异常,则会做主从切换,将某一台slave作为master,哨兵的配置略微复杂,并且性能和高可用性等各方面表现一般&a…

Node.js和npm

目录 01_Node.js01.什么是 Node.js目标讲解小结 02.fs模块-读写文件目标讲解小结 03.path模块-路径处理目标讲解小结 04.案例-压缩前端html目标讲解小结 05.认识URL中的端口号目标讲解小结 06.http模块-创建Web服务目标讲解小结 07.案例-浏览时钟目标讲解小结 02_Node.js模块化…

【LabVIEW FPGA入门】使用CompactRIO进行SPI和I2C通信

NI提供了 SPI and I2C Driver API:下载SPI and I2C Driver API - NI 该API使用FPGA数字I / O线与SPI或I2C设备进行通信。 选择数字硬件时,要考虑三个选项: NI Single-Board RIO硬件可同时使用SPI和I2C驱动程序。NI 9401 C系列模块与SPI驱动程…

LINUX网络

一、网络配置命令 1.1 ifconfig 命令功能ifconfig默认显示活动的显卡ifconfig -a显示所有的网卡ifconfig 网卡名称只显示前面的网卡信息ifconfig 网卡 down/ifdown 网卡关闭网卡ifconfig 网卡 up/ifup 网卡开启网卡ifconfig ens33:0 IP地址/子网掩码设置虚拟网卡 TYPEEthernet…

如何使用创建时间给文件重命名,简单的批量操作教程

在处理大量文件时,有时要按照规则对文件重命名,根据文件的创建时间来重命名。那如何批量操作呢?现在一起来看云炫文件管理器如何用文件的创建时间来批量重命名。 按创建时间重命名文件的前后对比图。 用创建时间批量给文件重命名的步骤&…

P1328 [NOIP2014 提高组] 生活大爆炸版石头剪刀布————C++

目录 [NOIP2014 提高组] 生活大爆炸版石头剪刀布题目背景题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示 解题思路Code调用函数的Code(看起来简洁一点)运行结果 [NOIP2014 提高组] 生活大爆炸版石头剪刀布 …

人工智能_机器学习092_使用三维瑞士卷数据_利用分层聚类算法进行瑞士卷数据三维聚类---人工智能工作笔记0132

然后我们使用分层聚类算法来对我们导入的瑞士卷数据进行聚类 agg =AgglomerativeClustering(n_clusters = 6,linkage = ward) 可以看到这里我们使用的,聚类距离计算用的是,ward这种,最小化簇内方差的形式,l进行聚类对吧 可以看到这个linkage参数有好几个选择对吧,是之前我们讲过…

【Go】excelize库实现excel导入导出封装(三),基于excel模板导出excel

前言 大家好,这里是符华~ 关于excelize库实现excel导入导出封装,我已经写了两篇了,我想要的功能基本已经实现了,现在还差一个模板导出,这篇文章就来讲讲如何实现用模板导出excel。 前两篇: 【Go】excel…

Redis原理篇(Dict的收缩扩容机制和渐进式rehash)

Dict(即字典) Redis是一种键值型数据库,其中键与值的映射关系就是Dict实现的。 Dict通过三部分组成:哈希表(DictHashTable),哈希节点(DictEntry),字典(Dict&#xff09…

JAVA静态引擎企业网站源码带文档

JAVA静态引擎企业网站源码带文档 系统介绍: 1.网站后台采用主流的 SSM 框架 jsp JSTL,网站前台采用freemaker静态化模版引擎生成html5 2.因为是生成的html,无需重复读取数据库,所以访问速度快,轻便,对服务器…

group by 查询慢的话,如何优化?

1、说明 根据一定的规则,进行分组。 group by可能会慢在哪里?因为它既用到临时表,又默认用到排序。有时候还可能用到磁盘临时表。 如果执行过程中,会发现内存临时表大小到达了上限(控制这个上限的参数就是tmp_table…

vue中使用js-doc

安装依赖 安装vue-template-compiler npm install ​vue-template-compiler​ 安装minami npm install minami 安装js-doc npm install js-doc 根目录下创建 .jsdoc.conf.json 内容: {"tags": {"allowUnknownTags": true,// 指定所用词…

LeetCode264. 丑数 II(相关话题:多重指针动态规划)

题目描述 给你一个整数 n ,请你找出并返回第 n 个 丑数 。丑数 就是质因子只包含 2、3 和 5 的正整数。 示例 1: 输入:n 10 输出:12 解释:[1, 2, 3, 4, 5, 6, 8, 9, 10, 12] 是由前 10 个丑数组成的序列。示例 2&am…

给Flutter + FireBase 增加 badge 徽章,App启动器 通知红点。

在此之前需要配置好 firebase 在flutter 在项目中。(已经配置好的可以忽略此提示) Firebase 配置教程:flutter firebase 云消息通知教程 (android-安卓、ios-苹果)_flutter firebase_messaging ios环境配置-CSDN博客 由于firebase 提供的消息…

数据分享|纯净音自然多轮对话数据集——语音大模型

在过去的一年里,大语言模型一路高歌猛进,让人惊艳的产品不断被推出。语音大模型也迎来突破,其中就包括还原度越来越高的声音复刻技术。 优秀的语音复刻性能离不开高质量的训练数据支撑。语音大模型构建需要大量的自然数据,尽可能…

myql进阶-一条查询sql在mysql的执行过程

目录 1. 流程图 2. 各个过程 2.1 连接器 2.2 分析器 2.3 优化器 2.4 执行器 2.5 注意点 1. 流程图 2. 各个过程 假设我们执行一条sql语句如下: select * from t_good where good_id 1 2.1 连接器 首先我们会和mysql建立连接,此时就会执行到连接…

世邦spon IP网络对讲广播系统任意文件上传漏洞

产品介绍 世邦通信IP网络对讲广播系统采用领先的IPAudio™技术,将音频信号以数据包形式在局域网和广域网上进行传送,是一套纯数字传输系统。 漏洞描述 spon IP网络对讲广播系统存在任意文件上传漏洞,攻击者可以通过构造特殊请求包上传恶意后门文件,从…

Linux环境之Ubuntu安装Docker流程

今天分享Linux环境之Ubuntu安装docker流程,Docker 是目前非常流行的容器,对其基本掌握很有必要。下面我们通过阿里云镜像的方式安装: 本来今天准备用清华大学镜像安装呢,好像有点问题,于是改成阿里云安装了。清华安装…

SpringBoot之优化高并发场景下的HttpClient并提升QPS

HttpClient优化思路 使用连接池(简单粗暴) 长连接优化(特殊业务场景) httpclient和httpget复用 合理的配置参数(最大并发请求数,各种超时时间,重试次数) 异步请求优化&#xff0…