黑马JVM总结(十七)

(1)G1_简介

下面介绍一种Grabage one的垃圾回收器,在jdk9的时候称为默认的回收器,废除了之前的CMS垃圾回收器,它的内部也是并发的垃圾回收器

我们可以想到堆内存过大,肯定会导致回收速度变慢,因为要涉及到对象的复制、标记,内存过大,对速度会产生影响,划分为小的区域进行管理,可以进行一些优化,标记和复制的速度

在jdk1.8还不是默认的额需要使用参数启动:-XX:+Use1GC

-XX:G1HeapReginSize:设置区域的大小

-XX:MaxGCPauseMillis:默认暂停目标

(2)G1_新生代垃圾回收

Young Collection:新生代的垃圾回收

Young Collection+ Concurrent Mark:新生代的垃圾收集同时执行一些并发的标记

Mixes Collection:混合收集

三个阶段是一个循环的过程,开始时新生代的垃圾收集,当老年代的内存超过阈值啦,那么它会在新生代垃圾回收的同时进行一个并发的标记,等这个阶段完成以后进行一个混合收集(对新生代幸存区、老年代都来进行一个大规模收集),回收结束伊甸园的内存都被释放掉会再次进入新生代的回收过程

新生代的工作流程:第一个阶段

内存布局:

Grabage one的垃圾回收器将堆内存划分为一个个大小相等的区域,每个区域都可以作为伊甸园,幸存区和老年代,刚开始区域都是白色的,表示时空闲的区域,我们类加载时新创建的对象,刚开始会分配到伊甸园区域绿色的E代表伊甸园区域,当伊甸园逐渐被占满时,会进行新生代的垃圾回收,会触发一个较短时间的Stop the World

新生代的垃圾回收把这个幸存的对象 ,已复制的算法把它放到幸存区

在工作一段时间,当幸存区的对象比较多了,或者幸存区的的对象寿命超过一定时间(大小),会再触发新生代的垃圾回收,幸存区的对象会晋升到老年代

如果寿命不够年龄,会拷贝到另外一个幸存区去 

(3)G1_新生代回收+CM

下面 Grabage one的垃圾回收器垃圾回收的第二个阶段 CM指Current Mark并发标记

我们进行垃圾回收的过程中需要进行初始标记和并发标记,初始标记呢我要找到哪些根对象,并发标记呢是从根对象触出发顺着引用链在找到其他的一些对象,初始标记是在新生代发生是就已经标记了

当老年代占用对空间达到阈值时进行并发标记,并发标记不会影响到用户的工作线程

 

E是伊甸园区  S是幸存区  O为老年代占有的区

当老年代占用总去45%的时候就并发标记了

(4)G1_混合回收

Grabage one的垃圾回收器垃圾回收的第三个阶段

E是伊甸园区会根据复制算法到幸存区中,幸存区的一些对象不够寿命的复制到另一个幸存区S,符合晋升条件的对象会晋升到一个老年代中去,这些属于新生代的回收,老年代的区域经过之前的并发标记阶段,发现一些对象也没用了,老年代也是采用复制算法把老年代中幸存对象复制到新的老年代区

为什么没有把所有的箭头划到这个O区呢?因为这个垃圾回收器会根据最大暂停时间,有选择的进行一个回收,有的时候我们的堆内存太大了老年代的垃圾回收时间可能比较长,达不到我们设置的最大暂停时间,垃圾回收器呢会从老年代里找到回收价值最高的区,挑选一部分区 进行垃圾回收,

复制的区域少了,就能达到最大暂停的时间,如果要复制的对象没那么多,最大暂停时间也可以达到,那么它会把所有的区都进行一个复制动作,复制一方面为了保留存活对象,一方面为了整理内存减少空间碎片

最终标记这个阶段在并发标记过程中漏掉一些对象,并发标记的同时用户线程也在工作,改变对象的垃圾和引用都会对并发标记的结果产生影响,需要暂停一下,执行最终标记 

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

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

相关文章

时序预测 | MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测

时序预测 | MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测 目录 时序预测 | MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 MATLAB实现NGO-GRU北方苍鹰算法优化门控循环单元时间序列预测&#…

Matlab编程中函数的重命名方法

Matlab编程中函数的重命名方法 在进行matlab编程时候,有时需要根据自己的习惯,需要对函数重命名。本文简要介绍重命名的方法。 一、重命名的方法 通过和赋值号实现,如下所示: 新函数名原函数名二、具体举例 clc clear all %将…

C 初级学习笔记(基础)

目录 1.预处理器指令 预定义宏 预处理器运算符 (\) 参数化的宏 头文件 .h 引用头文件操作 2.函数(标识符&关键字&运算符)存储类 函数参数 a. 标识符&关键字 b. 运算符(算术、关系、逻辑、位、赋…

手动部署 OceanBase 集群

手动部署一个 OB 单副本集群,包括一个 OBProxy 节点 部署环境 服务器信息 IP地址 192.168.0.26 网卡名 ifcfg-enp1s0 OS Kylin Linux Advanced Server release V10 CPU 8C 内存 32G 磁盘1 本地盘 /data/1 磁盘2 本地盘 /data/log1 机器和角色划分 …

软件设计模式

1.UML 1.1类图表示法 uml类图中,类使用包含类名、属性、方法 属性或方法前的加好和减号表示了这个方法的可见性,可见性的符号有三种: 表示public -表示private #表示protected 1.2 类与类之间关系 关联关系 单向关联 双向关系 自关联 聚合关…

WebRTC系列--sdp协商中的answer编解码协商过程

关于createAnswer的流程在前面的文章WebRTC系列-SDP之CreateAnswer这篇文章中有详细的分析。 这篇文章主要对于MediaSessionDescriptionFactory的AddAudioContentForAnswer做详细的分析,也就是说对于音频编码的匹配也是在这个方法里实现: 首先主要的函数调用如下图: 这篇文…

LabVIEW崩溃问题解决方法

LabVIEW崩溃问题解决方法 LabVIEW在运行中出现崩溃的情况,确实让人很崩溃。不过按照下面的方法可以逐步排查解决。 在LabVIEW开发环境中浏览时,LabVIEW崩溃并显示以下错误: 解决方案 LabVIEW内部错误和崩溃的初步故障排除步骤:…

【虚拟化】虚拟机vcpu绑核物理机

文章目录 一、NUMA二、虚拟机xml配置解析 参考文章 第一篇:KVM虚拟化CPU技术总结 第二篇:虚机cpu和mem的配置(cputune和numatune) 第三篇:libvirt 中cpu, numa 的配置 第四篇:如何提高虚拟机性能&#xff1…

数据结构与算法之动态规划算法(DP)

文章目录 前言1.0-1背包问题1.1 基本概念1.2 具体问题1.3 c代码求解1.4 测试 2.最长公共子序列 前言 前边我们讲过分治法,分治法的核心是将一个问题分解为n个小问题,最后合并结果。而动态规划算法的核心是穷举法,以及要寻找到一个状态方程,需…

电脑版剪映怎么倒放?

1.打开一个素材 2.添加到时间轨道 3.右击轨道素材 弹出的选项钟选择,基础编辑》倒放!

计算机网络分类

按照覆盖范围分类 (1)个域网:通常覆盖范围在1~10m。 (2)局域网:通常覆盖范围在10m~1km。 (3)城域网:覆盖范围通常在5~50 km 。 &…

蓝桥杯 题库 简单 每日十题 day5

01 字符计数 字符计数 题目描述 给定一个单词,请计算这个单词中有多少个元音字母,多少个辅音字母。 元音字母包括a,e,i,o,u,共五个,其他均为辅音字母。 输入描述 输入格式: 输入一行&#xff0…

Xcode15+iOS17适配以及遇到的问题

今天更新了 Xcode15,遇到了一些问题,做下记录希望大家少走点坑。 1.iOS17 SDK 安装失败 Xcode更新完成后,打开项目一直显示 no fund iOS17 sdk,根据项目不同提示可能有区别,根据提示下载后提示安装失败,…

针对 SAP 的增强现实技术

增强现实技术是对现实世界的一种交互式模拟。这种功能受到各种企业和制造商的欢迎,因为它可以减少生产停机时间、快速发现问题并维护流程,从而提高运营效率。许多安卓应用都在探索增强现实技术。 使用增强现实技术(AR)的Liquid U…

svn(乌龟svn)和SVN-VS2022插件(visualsvn) 下载

下载地址: https://www.visualsvn.com/visualsvn/download/

备受以太坊基金会青睐的 Hexlink,构建亿级用户涌入 Web3的入口

早在 2021 年 9 月,以太坊创始人 Vitalik Buterin 就曾提出了 EIP-4337(账户抽象)提案,并在去年 10 月对该提案进一步更新,引发行业的进一步关注。在今年 3 月,EIP-4337 提案正式通过审计,并成为…

centos 7.9系统安装向日葵

1.下载地址 向日葵远程控制app官方下载 - 贝锐向日葵官网 2.下载依赖 yum install -y libappindicator-gtk3 安装好依赖之后,然后再安装向日葵软件 3.安装软件 sudo rpm -ivh 文件名.rpm 4.安装成功之后的位置

VR赋能红色教育,让爱国主义精神永放光彩

昨天的918防空警报长鸣,人们默哀,可见爱国主义精神长存。为了贯彻落实“把红色资源利用好、红色传统发扬好、红色基因传承好”的指示精神,许多红色景点开始引入VR全景展示技术,为游客提供全方位720度无死角的景区展示体验。 VR全…

MySQL详解六:备份与恢复

文章目录 1. 数据库备份的分类1.1 从物理和逻辑上分类1.1.1 物理备份1.1.2 逻辑备份 1.2 从数据库的备份策略角度上分类1.2.1 完全备份1.2.2 差异备份1.2.3 增量备份 1.3 常见的备份方法 2. MySQL完全备份2.1 完全备份简介2.2 优点与缺点2.3 实现物理冷备份与恢复2.3.1 实现流程…

海外代理IP是什么?如何使用?

一、海外代理IP是什么? 首先,代理服务器是在用户和互联网之间提供网关的系统或路由器。它是一个服务器,被称为“中介”,因为它位于最终用户和他们在线访问的网页之间。 海外IP代理是就是指从海外地区获取的IP地址,用…