当前位置: 首页 > news >正文

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.lryc.cn/news/400063.html

相关文章:

  • Golang | Leetcode Golang题解之第228题汇总区间
  • 单目3D和bev综述
  • 每日Attention学习11——Lightweight Dilated Bottleneck
  • EM32DX-E4 IO 扩展模块
  • 【数据结构与算法】选择排序篇----详解直接插入排序和哈希排序【图文讲解】
  • SpringBoot实战:多表联查
  • 解决mysql,Navicat for MySQL,IntelliJ IDEA之间中文乱码
  • 虚拟环境操作
  • 企业网三层架构
  • node.js的安装及学习(node/nvm/npm的区别)
  • 性能优化篇:用WebSocket替代传统的http轮循
  • virtualbox的ubuntu默认ipv4地址为10.0.2.15的修改以及xshell和xftp的连接
  • Codeforces Round 957 (Div. 3)(A~D题)
  • fedora 40 安装拼音输入法
  • Chromium CI/CD 之Jenkins实用指南2024-如何创建新节点(三)
  • Git代码管理工具 — 3 Git基本操作指令详解
  • Linux——多线程(五)
  • 张量分解(4)——SVD奇异值分解
  • 第三方配件也能适配苹果了,iOS 18与iPadOS 18将支持快速配对
  • Docker 部署 Nginx 并在容器内配置申请免费 SSL 证书
  • 模型评估与选择
  • 有必要把共享服务器升级到VPS吗?
  • LLM代理应用实战:构建Plotly数据可视化代理
  • 大模型系列3--pytorch dataloader的原理
  • SQLServer 如何设置端口
  • 调整网络安全策略以适应不断升级的威胁形势
  • (leetcode学习)9. 回文数
  • QT VTK 简单测试工程
  • ES6 Generator函数的异步应用 (八)
  • Navicat:打造高效数据库管理之道