JVM:垃圾回收器

文章目录

  • 一、介绍
  • 二、年轻代-Serial垃圾回收器
  • 三、老年代-SerialOld垃圾回收器
  • 四、年轻代-ParNew垃圾回收器
  • 五、老年代-CMS(Concurrent Mark Sweep)垃圾回收器
  • 六、年轻代-Parllel Scavenge垃圾回收器
  • 七、Parallel Old垃圾回收器
  • 八、G1垃圾回收器

一、介绍

为什么分代GC算法要把堆分成年轻代和老年代

  • 系统中的大部分对象,都是创建出来之后很快就不在使用可以被回收。
  • 老年代中会存放长期存活的对象,比如Spring的大部分bean对象,在程序启动之后就不会被回收。
  • 在虚拟机的默认设置中,新生代的大小要远小于老年代的大小。

分代GC算法将堆分成年轻代和老年代的主要原因

  • 可以通过调整年轻代和老年代的比例来适应不同类型的应用程序,提高内存的利用率和性能。
  • 新生代和老年代使用不同的垃圾回收算法,新生代一般选择复制算法,老年代可以选择标记-清除和标记-整理算法,由程序员来选择灵活度较高。
  • 分代的设计中允许只回收新生代(minor gc),如果能满足对象分配的要求就不需要调整对整个堆进行回收(full gc),STW时间就会减少。

垃圾回收器的组合关系
垃圾回收器是垃圾回收算法的具体实现。由于垃圾回收器分为年轻代和老年代,除了G1之外其他垃圾回收器必须成对组合进行使用。

在这里插入图片描述

二、年轻代-Serial垃圾回收器

在这里插入图片描述

三、老年代-SerialOld垃圾回收器

在这里插入图片描述

四、年轻代-ParNew垃圾回收器

在这里插入图片描述

五、老年代-CMS(Concurrent Mark Sweep)垃圾回收器

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

六、年轻代-Parllel Scavenge垃圾回收器

在这里插入图片描述
在这里插入图片描述

七、Parallel Old垃圾回收器

在这里插入图片描述

八、G1垃圾回收器

在这里插入图片描述
在这里插入图片描述
G1垃圾回收器的两种方式:

  • 年轻代回收(Young GC)。
    回收Eden区和Survivor区中的不用的对象。会导致STW,G1中可以通过参数-XX:MaxGCPauseMills=n(默认200)设置每次垃圾回收时的最大暂停时间毫秒数,G1垃圾回收器会尽可能地保证暂停时间。
  • 混合回收(Mixed GC):年轻代+老年代。

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

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

相关文章

仅在少数市场发售?三星Galaxy Z Fold 6 Slim折叠屏手机更轻更薄

在智能手机的创新之路上,三星一直是行业的领跑者之一。随着Galaxy Z Fold系列的不断进化,三星再次突破技术边界,推出了更为轻薄的Galaxy Z Fold 6 Slim。 这款新型折叠屏手机以其独特的设计和卓越的性能,为用户带来了全新的使用体…

[终端安全]-8 隐私保护和隐私计算技术

1 隐私保护相关法规和标准 1)国内法规和标准 1.1)中华人民共和国网络安全法(2017年) - 规定了个人信息的保护和数据安全的基本原则。 - 要求网络运营者采取措施防止数据泄露、篡改和丢失。 1.2)信息安全技术&#x…

【Python】Gunicorn vs Uvicorn:如何选择适合你的 Python WSGI/ASGI 服务器

我白天是个 搞笑废物 表演不在乎 夜晚变成 忧伤怪物 撕扯着孤独 我曾经是个 感性动物 小心地感触 现在变成 无关人物 🎵 张碧晨/王赫野《何物》 在部署 Python Web 应用时,选择合适的服务器对应用的性能和稳定性至关重要。Gunicorn…

护眼台灯真的护眼吗?要注意学生如何正确使用台灯!

孩子们面临着越来越多的视力挑战,在近视学生中,近10%为高度近视,且占比随年级升高而增长。幼儿园6岁儿童中有1.5%为高度近视,而高中阶段则达到了17.6%。青少年是国家的未来和希望,而他们的视力健康却面临着前所未有的挑…

一篇讲清楚怎么选算力租赁平台

选择算力租赁平台时,需要考虑多个因素以确保找到最适合自己需求的服务。以下是一些关键点,可以帮助您做出明智的选择: 明确需求:首先,确定您的项目需要哪种类型的计算资源,比如CPU、GPU或FPGA,以…

Cadence23学习笔记(二)

原理图设计界面中就可以直接新建PCB: 亲测:需要画完原理图,并且DRC通过之后才可以! 放置完元器件之后要规定元件的Footprint ,注意PCB封装名要和库文件中的名字对应: DRC按钮: 点击图标 N, 生成第一网表&…

车载音视频MediaPlayer优化方案

媒体播放现状 从手机到车载,在很多地方还是有很大的不同。针对多媒体的场景Android车机目前大部分结构大致结构如下图: 从以上图看出的问题: 各个音视频APP单独实现播控界面,播放链路不一致,使用的底层播放器和音频焦…

基于Spring Boot的高校后勤餐饮管理系统

1 项目介绍 1.1 研究背景 “互联网”时代的到来,既给高校后勤管理发展带来了机遇,也带来了更大的挑战。信息化应用已经开始普及,传统的高校后勤餐饮管理模式往往存在着效率低下、信息不透明、资源浪费等问题,已经难以满足现代高…

Linux系统之部署经典魔塔小游戏

Linux系统之部署经典魔塔小游戏 一、魔塔小游戏介绍1.1 魔塔小游戏简介1.2 项目预览二、本次实践介绍2.1 本地环境规划2.2 本次实践介绍三、检查本地环境3.1 检查系统版本3.2 检查系统内核版本3.3 检查软件源四、安装Apache24.1 安装Apache2软件4.2 启动apache2服务4.3 查看apa…

如何使用断点续传方式上传大文件到阿里云 OSS

要使用断点续传方式上传大文件到阿里云 OSS,一般可以通过阿里云提供的 SDK 来实现。以下是使用 Java SDK 进行断点续传上传的示例代码,前提条件如下: 已创建存储空间(bucket)。具有oss:putObject权限。SDK 会将上传的状…

flask基础配置详情

前言 一个简单的应用 app Flask(__name__) app.route("/") def hello_world():return "<p>Hello,World!"运行Flask应用 #flask命令运行flask --app hello run#使用Python命令进行运行python -m flask # 作为一个捷径&#xff0c;如果文件名为 app…

STM32第十八课:SPIFlash

目录 需求一、SPI概要二、SPI配置1.开时钟2.配置IO3.配置&使能SPI 三、FLash操作函数1.SPI发送数据2.FLASH写使能3.FLASH等待操作完成4.FLASH页写操作5.FLASH读操作6.FLASH扇区擦除 四、需求实现 需求 通过SPI控制FLash进行数据的保存和删除。 一、SPI概要 在我们使用UA…

【python】OpenCV—European Article Number

参考学习来自&#xff1a;OpenCV基础&#xff08;25&#xff09;条码和二维码扫的生成与识别 1 条形码介绍 EAN-13是欧洲物品编码&#xff08;European Article Number&#xff09;的缩写&#xff0c;是一种广泛使用的条形码标准&#xff0c;特别是在超级市场和其它零售业中。…

【c++刷题笔记-动态规划】day38: 322. 零钱兑换 、 279.完全平方数 、139.单词拆分

322. 零钱兑换 - 力扣&#xff08;LeetCode&#xff09; 思路&#xff1a;完全背包&#xff0c;初始化为最大背包容量&#xff0c;当背包为0的时候有0枚硬币 重点&#xff1a;dp[i-coins[j]]1,统计个数 class Solution { public:int coinChange(vector<int>& coin…

OpenCV解决验证码(数字和字母)识别(Python)

文章目录 前言一、准备验证码图片 前言 OpenCV是一个基于Apache2.0许可&#xff08;开源&#xff09;发行的跨平台计算机视觉和机器学习软件库。它支持Windows、Linux、Mac OS、Android和iOS等多个操作系统&#xff0c;提供了丰富的图像处理和计算机视觉功能&#xff0c;包括但…

WINUI——实现点在直线上随意移动

开发环境 VS2022 .net core6 需求 需要在一条直线上可随意移动一个点&#xff0c;这个点一定要在这条直线上&#xff0c;不可移出直线。也就是说A点到B点的直线就是这个点的移动范围。 需求深入分析 这个需求看上去&#xff0c;感觉完全可以使用Slider实现&#xff0c;因为…

RPC与服务的注册发现

文章目录 1. 什么是远程过程调用(RPC)?2. RPC的流程3. RPC实践4. RPC与REST的区别4.1 RPC与REST的相似之处4.2 RPC与REST的架构原则4.3 RPC与REST的主要区别 5. RPC与服务发现5.1 以zookeeper为服务注册中心5.2 以etcd为服务注册中心 6. 小结参考 1. 什么是远程过程调用(RPC)?…

(自用)网络编程

OSI七层协议模型 (open system interconnection) 应用层————为应用数据提供服务 表示层————数据格式转化&#xff0c;数据加密 会话层————建立、维护和管理会话 传输层————建立、维护和管理端到端的链接&#xff0c;控制数据传输的方式 网络层————数据…

昇思25天学习打卡营第19天|基于MobileNetv2的垃圾分类

国内城市生活垃圾一般分类为以下四大类&#xff1a; 可回收垃圾&#xff1a;主要包括废纸、塑料、玻璃、金属和布料五大类。废纸如报纸、期刊、图书、包装纸等&#xff1b;塑料如各种塑料袋、塑料包装物、一次性塑料餐盒等&#xff1b;玻璃如玻璃瓶、碎玻璃片等&#xff1b;金…

Windows图形界面(GUI)-DLG-C/C++ - 图形界面程序结构

公开视频 -> 链接点击跳转公开课程博客首页 -> ​​​​​​链接点击跳转博客主页 目录 Windows图形界面程序结构 Windows 程序结构 窗口类和窗口过程函数 创建和显示窗口 消息循环和消息处理机制 Windows图形界面程序结构 Windows 程序结构 WinMain 函数WinMain …