JVM(尚硅谷)学习之垃圾回收相关算法

news/2024/4/24 5:23:26/文章来源:https://blog.csdn.net/m0_55895641/article/details/127442686

垃圾回收:标记阶段+清除阶段

标记阶段:

  • 引用计数算法:对每个对象保存一个整型的引用计数器属性

由于引用计数算法无法处理循环引用的问题,所以Java的垃圾回收器中没有使用此类算法

在python语言中使用了引用计数算法。

  • 可达性分析算法(根搜索算法、追踪性垃圾收集):

图示;

GCroots可能是哪些元素:

注意其中的小技巧,回收谁,它周边的结构就可以作为GCroots集合内的内容。

补充点:

对象的finalization机制(对象终止机制)

不要主动去调用finalize方法,如果不重写finalize方法,原本的finalize方法中是没有任何内容的。由于finalize方法的存在,对象可能会有三种状态:可触及的、可复活的、不可触及的

finalize方法只能调用一次。

判断一个对象是否可回收的具体步骤:

相当于给一个对象一次重新复活的机会,但机会仅有一次,因为每个对象的finalize方法只能调用一次。

垃圾清除阶段:

常见的算法:标记-清除算法(mark-sweep)、复制算法、标记-压缩算法

标记-清除算法:标记的是可达对象(非垃圾对象)

图示:

标记清除算法的缺点:

  • 效率不算高
  • 在进行GC时,需要停止整个应用程序,导致用户体验差
  • 这种方式清理出来的内存是不连续的,会产生内存碎片,需要维护一个空闲列表

注意:清除并不是真的置空,而是把需要清除的对象地址保存在空闲的地址列表里,下次有对象需要加载时,判断垃圾的位置空间是否够,如果够,就存放。

复制算法:

核心思想:

图示;

优缺点;

复制算法适用于朝生夕死的场景,所以适用于survivor区。

标记压缩算法(mark-compact):

执行过程;

标记压缩算法与标记清除算法的本质区别是标记压缩算法是一种移动式的回收算法,而标记-清除是一种非移动式的。

优点:

  • 消除了标记-清除算法中内存碎片化的问题,分配内存时,只需要持有一个内存的起始地址即可
  • 消除了复制算法中,内存减半的高额代价

缺点:

  • 从效率上来说,标记-压缩算法低于复制算法
  • 移动对象的同时,如果对象被其他对象引用,还需要调整引用的地址
  • 移动过程中,需要全程暂停用户应用程序(STW)

对比三种算法:

根据需求,使用分代收集算法:

HotSpot中的CMS回收器:

为了解决STW延迟时间较长的问题,出现了两种新的算法:

增量收集算法:

增量收集算法的缺点:

分区算法:

 

图解:

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

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

相关文章

【云原生之Docker实战】使用Docker部署File Manager文件管理系统

【云原生之Docker实战】使用Docker部署File Manager文件管理系统一、File Manager简介1.File Manager简介2.File Manager特点二、检查宿主机系统版本三、检查本地docker环境1.检查docker服务状态2.检查docker配置信息3.开启IPv4 forwarding4.检查Docker版本四、安装docker-comp…

自媒体短视频中视频相关的问题总结,涉及视频类型、质量、时长和原创等方面

自媒体短视频中视频相关的问题总结,涉及视频类型、质量、时长和原创等方面 大家好,我是我赢助手,专注于自媒体短视频去水印、去重和文案提取运营! 前几天跟大家分享了我最近在做的一个短视频账号,也就是刚刚开始做短…

软件工程专业如何论文选题?

Ladies and gentlemen,写论文可谓是读书阶段最为关键的一环,你们是否还记得被论文折磨的日日夜夜,最可怕的不是导师催促你时铁青的面容,而是眼看着DDL(Deadline)来临,你的论文题目却让你一筹莫展…

【附源码】计算机毕业设计SSM体育队训练的信息管理系统

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

初识Classic AUTOSAR开发工具链

在过去,软件和硬件之间具有很强的耦合性,阻碍了软件组件在不同硬件平台上的可移植性和重用性。而AUTOSAR作为汽车电子行业的标准,提供标准的软件接口定义,工程师可以根据需求将软件组件分配到汽车的ECU中,实现标准软件…

关于Vue项目npm操作中npm run serve或npm run dev报错以及二者区别

🎯问题分析 我们在启动vue项目的时候,需要用到npm操作,比如使用npm run serve或npm run dev。比如说我们下载其他人的开源vue项目时,我们想在本地运行时,我们用的到npm run serve或npm run dev有时候会出现报错&#x…

Windows11+wsl2+cuda+conda+pytorch安装记录之处处都是坑

由于代码在windows上运行总是抛奇奇怪怪的错误,一怒之下换linux环境运行,win11自带的wsl很方便,在各种博客找了n多教程,历时两天,终于安装好了环境,配置这个环境的目的是为了运行深度学习的代码&#xff0c…

摄像机登录网页界面提示无法跳转登录页面,网页提示无法访问此页面

摄像机登录网页界面提示无法跳转登录页面,网页提示无法访问此页面 (报错截图) 首先通过ping设备看是否ping得通IPC,如不通,检查IPC的供电和网络。 供电排查方法: (1)、观察IPC红外…

泊松流(Poisson Flow)生成模型

又搬来了神器啊~~~ 扩散模型最早来源于物理中的热力学,最近却在人工智能领域大放异彩。还有什么物理理论可以推动生成模型研究的发展呢?最近,来自 MIT 的研究者受到高维电磁理论的启发,提出了一种称作泊松流(Poisson…

FDTD script command(源/监视器)

adddipole : 添加偶极子光源 addplane : 添加平面波 addindex : 添加折射率监视器 addmovie :添加电影监视器 addpower : 添加功率监视器 通用设置 设置结构名字 set("name",name);设置位置/跨度 set("x",1e-6);set("x span",1e-6); set(&q…

【软考中级信安】第三章--密码学基本理论

目录 1、密码学概况 1.1 密码学发展简况 1.2 密码学基本概念 1.3 密码安全性分析 2、密码体制分类 2.1 私钥密码体制(密钥不能公开) 2.2 公钥密码体制(密钥可以公开) 2.3 混合密码体制 3、常用密码算法 3.1 DES 3.2 …

【JAVA程序设计】(C00084)基于SSM+uniapp的社区疫情防控小程序及管理系统-有文档

基于SSMuniapp的社区疫情防控小程序及管理系统项目简介项目获取开发环境项目技术运行截图项目简介 基于后台ssm框架前台vue以及elementui框架小程序使用uniapp的社区疫情管控小程序及管理系统:系统管理员、用户 管理员角色包含以下功能: 首页、个人中心…

jmeter压力测试工具,雪崩效应,容错组件Sentinel

一。jmeter测试工具: 概念: 项目要上线,肯定是需要进行压力测试的 可以测试服务器够不够 场景: 一个问题,如果有服务接口被阻,那另一个接口是否会有影响 进而引出了jmeter,用来模拟线程压力下载…

YOLO性能指标

术语 全称 解释 True 表示推理正确 False 表示推理错误, 跟ground truth(位置,类别)比对之后得到的结论 positive 推理为正例,iou > 阈值,类别概率>阈值 negative 推理为反例,不符…

HarmonyOS系统中内核实现烟雾检测的方法

大家好,今天我们主要来聊一聊,如何使用鸿蒙系统来操作烟雾浓度传感器。 目录 第一:烟雾浓度传感器原理 第二: 鸿蒙相关API函数分析 Init_E53_SF1() MQ2_PPM_Calibration() Get_MQ2_PPM() 第三:硬件设计 第四&…

【单片机毕业设计】【mcuclub-hj-006-7】基于单片机的空气质量(天然气、CO、甲醛、甲苯、TVOC、CO2)检测的设计

最近设计了一个项目基于单片机的空气质量(天然气、CO、甲醛、甲苯、TVOC、CO2)检测系统,与大家分享一下: 一、基本介绍 项目名:空气质量(天然气、CO、甲醛、甲苯、TVOC、CO2) 项目编号&#x…

04 CSS01

目标: 1、基础认知 2、基础选择器 3、字体和文本相关样式 4、Chrome调试工具 5、综合案例 一、基础认知 1.1 css介绍 中文名:层叠样式表 作用:给页面中的html标签设置样式 1.2 css语法规则 css写在style标签中,style标签一般…

【DETR 论文解读】End-to-End Object Detection with Transformer

目录前言一、整体架构二、基于集合预测的损失函数2.1、二分图匹配确定有效预测框2.2、损失函数三、前向推理四、掉包版代码五、一些问题Reference前言 贡献/特点: 端到端:去除NMS和anchor,没有那么多的超参,计算量也大大减少&am…

二叉树的OJ练习题

1.单值二叉树 描述:如果二叉树每个节点都具有相同的值,那么该二叉树就是单值二叉树。只有给定的树是单值二叉树时,才返回 true;否则返回 false。 链接:965. 单值二叉树 - 力扣(LeetCode) 思路…

世界陶瓷卫浴100强榜单发布!

​  经过一年的严格数据审查,科学统计分析,备受全行业期待的 【世界陶瓷卫浴100强统计排行榜 】于2022年10月19日在中国佛山正式发布,除了陶瓷卫浴企业100强总榜以外,还发布了全球瓷砖企业30强、全球卫浴企业20强,全…