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):年轻代+老年代。
相关文章:
JVM:垃圾回收器
文章目录 一、介绍二、年轻代-Serial垃圾回收器三、老年代-SerialOld垃圾回收器四、年轻代-ParNew垃圾回收器五、老年代-CMS(Concurrent Mark Sweep)垃圾回收器六、年轻代-Parllel Scavenge垃圾回收器七、Parallel Old垃圾回收器八、G1垃圾回收器 一、介…...
Golang | Leetcode Golang题解之第228题汇总区间
题目: 题解: func summaryRanges(nums []int) (ans []string) {for i, n : 0, len(nums); i < n; {left : ifor i; i < n && nums[i-1]1 nums[i]; i {}s : strconv.Itoa(nums[left])if left < i-1 {s "->" strconv.It…...
单目3D和bev综述
文章目录 SOTA2D 检测单目3d检测3d bev cam范式1 Transformer attention is all you need 20172 ViT vision transformer ICLR 2021google3 swin transformer 2021 ICCV bestpaper MS4 DETR 20205 DETR3D 20216 PETR 20227 bevformerLSSbevdetcaddn指标 mAP NDS标注:…...
每日Attention学习11——Lightweight Dilated Bottleneck
模块出处 [TITS 23] [link] [code] Lightweight Real-Time Semantic Segmentation Network With Efficient Transformer and CNN 模块名称 Lightweight Dilated Bottleneck (LDB) 模块作用 改进的编码器块 模块结构 模块代码 import torch import torch.nn as nn import to…...
EM32DX-E4 IO 扩展模块
输入:0x6000-01 // 输入 0-15 6020H——00H IN0 计数【0~7】 ——01H IN0_SetCountMode S32 r/w 初始值默认为 0 设置 IN0 的计数方式:0 电平下 降沿,1 电平上升沿, 2 电平任意沿 ——02H IN0_Set…...
【数据结构与算法】选择排序篇----详解直接插入排序和哈希排序【图文讲解】
欢迎来到CILMY23的博客 🏆本篇主题为:【数据结构与算法】选择排序篇----详解直接插入排序和哈希排序 🏆个人主页:CILMY23-CSDN博客 🏆系列专栏:Python | C | C语言 | 数据结构与算法 | 贪心算法 | Linux…...
SpringBoot实战:多表联查
1. 保存和更新公寓信息 请求数据的结构 Schema(description "公寓信息") Data public class ApartmentSubmitVo extends ApartmentInfo {Schema(description"公寓配套id")private List<Long> facilityInfoIds;Schema(description"公寓标签i…...
解决mysql,Navicat for MySQL,IntelliJ IDEA之间中文乱码
使用软件版本 jdk-8u171-windows-x64 ideaIU-2021.1.3 mysql-essential-5.0.87-win32 navicat8_mysql_cs 这个问题我调试了好久,网上的方法基本上都试过了,终于是解决了。 三个地方结果都不一样。 方法一 首先大家可以尝试下面这种方法:…...
虚拟环境操作
1、对虚拟环境的操作 查看虚拟环境列表 conda env list 创建虚拟环境 conda create -n 虚拟环境名称 python3.x 激活虚拟环境 conda activate 虚拟环境名称 退出虚拟环境 conda deactivate 删除虚拟环境 conda remove -n 虚拟环境名称 all 2、对虚拟环境下的包的操作…...
企业网三层架构
企业网三层架构:是一种层次化模型设计,旨在将复杂的网络设计分成三个层次,每个层次都着重于某些特定的功能,以提高效率和稳定性。 企业网三层架构层次: 接入层:使终端设备接入到网络中来,提供…...
node.js的安装及学习(node/nvm/npm的区别)
一、什么是node、nvm和npm 1.Node.js node.js 一种Javascript编程语言的运行环境,能够使得javascript能够脱离浏览器运行。以前js只能在浏览器(也就是客户端)上运行,node.js将浏览器中的javascript运行环境进行封装的,…...
性能优化篇:用WebSocket替代传统的http轮循
当我还是初级菜鸟时,我只会写定时器定时调用接口,发起http请求,定时轮训请求接口,返回最新数据,定时器开启的多了还会引起页面卡顿的性能问题,虽然及时销了但还是会影响流畅问题。然后技术leader一声令下说改成websoket的请求方式,为什么这么做呢?下面来谈谈WebSocket相…...
virtualbox的ubuntu默认ipv4地址为10.0.2.15的修改以及xshell和xftp的连接
virtualbox安装Ubuntu后,默认的地址为10.0.2.15 我们查看virtualbox的设置发现是NAT 学过计算机网络的应该了解NAT技术,为了安全以及缓解ip使用,我们留了部分私有ip地址。 私有IP地址网段如下: A类:1个A类网段&…...
Codeforces Round 957 (Div. 3)(A~D题)
A. Only Pluses 思路: 优先增加最小的数,它们的乘积会是最优,假如只有两个数a和b,b>a,那么a 1,就增加一份b。如果b 1,只能增加1份a。因为 b > a,所以增加小的数是最优的。 代码: #include<bi…...
fedora 40 安装拼音输入法
仅做参考,一般主流linux版本在安装完成后,都会自带中文输入法。而需要配置中文输入法的小众发行版往往软件仓库自带的依赖不全。 1,sudo dnf install ibus 2,sudo dnf install im-chooser 3,sudo dnf install ibus-libpinyin 4,在终端输入im-choose…...
Chromium CI/CD 之Jenkins实用指南2024-如何创建新节点(三)
1. 前言 在前一篇《Jenkins实用指南2024-系统基本配置(二)》中,我们详细介绍了如何对Jenkins进行基本配置,包括系统设置、安全配置、插件管理以及创建第一个Job。通过这些配置,您的Jenkins环境已经具备了基本的功能和…...
Git代码管理工具 — 3 Git基本操作指令详解
目录 1 获取本地仓库 2 基础操作指令 2.1 基础操作指令框架 2.2 git status查看修改的状态 2.3 git add添加工作区到暂存区 2.4 提交暂存区到本地仓库 2.5 git log查看提交日志 2.6 git reflog查看已经删除的记录 2.7 git reset版本回退 2.8 添加文件至忽略列表 1 获…...
Linux——多线程(五)
1.线程池 1.1初期框架 thread.hpp #include<iostream> #include <string> #include <unistd.h> #include <functional> #include <pthread.h>namespace ThreadModule {using func_t std::function<void()>;class Thread{public:void E…...
张量分解(4)——SVD奇异值分解
🍅 写在前面 👨🎓 博主介绍:大家好,这里是hyk写算法了吗,一枚致力于学习算法和人工智能领域的小菜鸟。 🔎个人主页:主页链接(欢迎各位大佬光临指导) ⭐️近…...
第三方配件也能适配苹果了,iOS 18与iPadOS 18将支持快速配对
苹果公司以其对用户体验的不懈追求和对创新技术的不断探索而闻名。随着iOS 18和iPadOS 18的发布,苹果再次证明了其在移动操作系统领域的领先地位。 最新系统版本中的一项引人注目的功能,便是对蓝牙和Wi-Fi配件的配对方式进行了重大改进,不仅…...
SEO AI在网站内容创作和优化中的作用是什么
SEO AI在网站内容创作和优化中的重要性 在当前数字化时代,网站内容创作和优化已成为企业在竞争中脱颖而出的关键。在这其中,SEO AI(搜索引擎优化人工智能)正扮演着越来越重要的角色。SEO AI在网站内容创作和优化中的作用是什么呢…...
AUTOSAR Ethernet Stack深度解析,手把手实现SOME/IP序列化、DDS桥接与时间同步校准
第一章:AUTOSAR以太网协议栈架构概览AUTOSAR以太网协议栈是面向汽车电子域控制器与中央计算平台的关键通信基础设施,其设计严格遵循AUTOSAR Classic Platform规范(R21-11及后续版本),在保持与传统CAN/LIN协议栈统一配置…...
工业C++内存安全漏洞TOP5:从STL误用到裸指针越界,92%的致命事故源于这3个隐藏陷阱
第一章:工业C内存安全漏洞的严峻现实与行业影响在工业控制、航空航天、智能汽车和电力系统等关键基础设施领域,C因其高性能与底层可控性被广泛采用。然而,其缺乏内存安全机制的本质特性,正持续引发严重事故:从特斯拉Au…...
数学周刊第14期(2026年03月30日-04月06日)中国数学家王虹再获殊荣
目录王虹获纽约大学最高荣誉,距菲尔兹奖仅一步之遥香港科大团队首创代码驱动系统参考资料王虹获纽约大学最高荣誉,距菲尔兹奖仅一步之遥 当地时间4月2日,美国纽约大学柯朗数学科学研究所宣布,中国数学家王虹获评该校“银教授”&am…...
基于混沌麻雀搜索算法的无人机航迹规划方法:CSSA策略实现与性能分析
麻雀搜索算法(SSA)文章复现:《基于混沌麻雀搜索算法的无人机航迹规划方法_汤安迪》策略为:立方混沌反向学习初始化种群反向精英策略改进发现者策略正余弦算法改进加入者策略动态调整警觉者数量高斯策略扰动——CSSA。复现内容包括:改进算法实现、23个基准…...
Unity游戏翻译革命:XUnity.AutoTranslator完全指南
Unity游戏翻译革命:XUnity.AutoTranslator完全指南 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 你是否曾因为语言障碍而错过优秀的日本Unity游戏?是否厌倦了等待官方汉化却遥遥…...
Python MCP模板的“最后一公里”难题:K8s ServiceMesh集成、gRPC透明代理、证书自动轮转——全链路演示
第一章:Python MCP模板的企业级定位与架构全景Python MCP(Model-Controller-Plugin)模板并非通用Web框架的变体,而是专为企业级中台系统设计的可扩展服务骨架。它聚焦于解耦业务模型、控制逻辑与插件化能力扩展,适用于…...
解密技术的范式革新:RPGMakerDecrypter如何重构游戏创作生态
解密技术的范式革新:RPGMakerDecrypter如何重构游戏创作生态 【免费下载链接】RPGMakerDecrypter Tool for decrypting and extracting RPG Maker XP, VX and VX Ace encrypted archives and MV and MZ encrypted files. 项目地址: https://gitcode.com/gh_mirror…...
进程同步与互斥——理发师问题多线程优化实践(sleeping barber problem)
1. 理发师问题:从生活场景到多线程模型 想象一下周末去理发店的场景:推门进去发现理发师正在给一位顾客剪头发,旁边有5把等待椅。如果椅子都空着,你可以直接坐下等待;如果已经坐了5个人,你可能选择改天再来…...
XUnity自动翻译器终极指南:5分钟实现Unity游戏无障碍汉化
XUnity自动翻译器终极指南:5分钟实现Unity游戏无障碍汉化 【免费下载链接】XUnity.AutoTranslator 项目地址: https://gitcode.com/gh_mirrors/xu/XUnity.AutoTranslator 还在为外语游戏而苦恼?XUnity自动翻译器就是你的游戏语言救星!…...
