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

JVM(HotSpot):GC之垃圾回收阶段

文章目录

  • 前言
  • 一、标记清除算法(Mark Sweep)
  • 二、标记整理算法(Mark Compact)
  • 三、复制算法(Copy)

前言

标记出垃圾对象之后,就要进行清理。
那么,如何清理?

这里也有相应的算法。
主要有三种。

一、标记清除算法(Mark Sweep)

在这里插入图片描述
原理说明:如上图,在JVM内存空间中,根据可达性分析算法,标记出没有被引用的对象为垃圾对象,等待GC回收。那么,清除阶段,直接记录出垃圾对象的起始坐标和结束坐标。那么,这段坐标内,即为可用内存。所以,清除速度快

缺点:造成空间碎片,使得较大对象无法存入,浪费了碎片空间。

二、标记整理算法(Mark Compact)

在这里插入图片描述
原理说明:这个算法,其实是在标记清除算法的基础上的一个优化。标记清除算法存在的缺点就是,空间碎片问题,所以,这里在清除垃圾对象的同时,进行存活对象的移动,把对象存放到一个连续的空间中,从而,是可用空间保持连续。解决了空间碎片问题。

缺点:因为,存活对象的移动,一定会涉及到复制工作,并且,移动后的对象,内存地址也会发生改变。从而导致,原始引用需要修改对象地址。从而造成效率低下。

三、复制算法(Copy)

在这里插入图片描述在这里插入图片描述在这里插入图片描述
原理说明:内存分为FROMTO两块区域,GC发生时,会将FROM中的存活对象复制到TO区域,再将FROM中的垃圾对象清除掉。然后,将原来的TO区域标记为FROM区域,原来的FROM区域标记为TO区域。没有内存碎片。

缺点:空间利用率较低。

相关文章:

JVM(HotSpot):GC之垃圾回收阶段

文章目录 前言一、标记清除算法(Mark Sweep)二、标记整理算法(Mark Compact)三、复制算法(Copy) 前言 标记出垃圾对象之后,就要进行清理。 那么,如何清理? 这里也有相应的算法。 主要有三种。 一、标记清除算法(Mark Sweep) 原理说明&…...

Go 项目如何集成类似mybatisPlus插件呢?GORM走起!!

导读: 在 Go 项目中,虽然没有像 MyBatis Plus 这样特定的 ORM 插件,但可以使用功能相似的 Go ORM 框架,比如 GORM,它支持链式查询、自动迁移、预加载等功能,与 MyBatis Plus 有相似之处。通过一些插件或扩…...

《深度学习》Dlib库 CNN卷积神经网络 人脸识别

目录 一、如何实现CNN人脸识别 1、CNN核心概念 1)卷积层 2)池化层 3)激活函数 4)全连接层 2、步骤 1)加载预训练的人脸识别模型 2)读取图像并检测人脸 3)提取人脸特征向量 4&#xf…...

滚雪球学Redis[7.1讲]:Redis实战案例

全文目录: 🎉前言🚦1. 使用Redis实现会话管理在Web应用中使用Redis管理会话会话过期与刷新策略安全性考虑与优化 🧩2. 使用Redis实现缓存系统缓存的基本原理Redis缓存的应用场景缓存失效策略与雪崩预防 ✨3. Redis在排行榜系统中的…...

WordPress外部图片本地化插件

一款用于本地化文章的外部图片的插件,支持如下功能: 文章发布前通过编辑器插件本地化 文章手动发布时自动本地化 文章定时发布时自动本地化 针对已发布的文章批量本地化。 源码下载:https://download.csdn.net/download/m0_66047725/898963…...

Linux基础-shell的简单实现

个人主页:C忠实粉丝 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 C忠实粉丝 原创 Linux基础-shell的简单实现 收录于专栏[Linux学习] 本专栏旨在分享学习Linux的一点学习笔记,欢迎大家在评论区交流讨论💌 目录 1, 全局变…...

Tomcat日志文件详解及catalina.out日志清理方法

目录 前言1. Tomcat日志文件详解1.1 catalina.out1.2 localhost_access_log1.3 catalina.<date>.log1.4 host-manager.<date>.log 和 manager.<date>.log1.5 localhost.<date>.log 2. catalina.out文件管理与清理方法2.1 为什么不能直接删除catalina.o…...

react 中的hooks中的useState

(1). State Hook让函数组件也可以有state状态, 并进行状态数据的读写操作 (2). 语法: const [xxx, setXxx] React.useState(initValue) (3). useState()说明:参数: 第一次初始化指定的值在内部作缓存返回值: 包含2个元素的数组, 第1个为内部当前状态值, 第2个为更新状态值的…...

STM32学习笔记---DMA

目录 一、什么是DMA 1、DMA是什么 2、DMA的工作流程 3、DMA控制器与外设控制器 二、如何配置DMA 1、DMA框图 2、功能说明 2.1 通道选择 2.2 仲裁器 2.3 源、目标和传输模式 2.4 指针递增 2.5 循环模式 2.6 DMA流控制器和外设流控制器 3、程序设计 三、具体使用DMA…...

Cesium 实战 - 自定义纹理材质 - 立体墙(旋转材质)

Cesium 实战 - 自定义纹理材质 - 立体墙(旋转材质) 核心代码完整代码在线示例Cesium 给实体对象(Entity)提供了很多实用的样式,基本满足普通项目需求; 但是作为 WebGL 引擎,肯定不够丰富,尤其是动态效果样式。 对于实体对象(Entity),可以通过自定义材质,实现各种…...

进程间关系与守护进程

一、进程组 1.1、什么是进程组 提到进程的概念&#xff0c; 其实每一个进程除了有一个进程 ID(PID)之外 还属于一 个进程组。进程组是一个或者多个进程的集合&#xff0c; 一个进程组可以包含多个进程。 每一 个进程组也有一个唯一的进程组 ID(PGID)&#xff0c; 并且这个 PG…...

金山翻译接口逆向

网址&#xff08;加密后&#xff09;&#xff1a;aHR0cHM6Ly93d3cuaWNpYmEuY29tL3RyYW5zbGF0ZQ 文章目录 抓包sign值结果加密 逆向sign值第一步第二步1.2.3. 解密content第一步1.2.3. 抓包 F12 -> 翻译框输入spider -> 点击Fetch/XHR -> 找到接口 index.php? 开头的…...

unified-runtime编译与验证

unified-runtime编译与验证 一.创建容器二.编译unified-runtime三.生成一个cuda ptx kernel四.API测试 unified-runtime编译与验证 一.创建容器 docker run --gpus all --shm-size32g -ti \-e NVIDIA_VISIBLE_DEVICESall --privileged --nethost \--rm -it \-v $PWD:/home \-…...

【Python】最详细--基础语法

Python是一种强大且易于学习的编程语言&#xff0c;广泛用于各种应用程序的开发&#xff0c;如web开发、数据科学、人工智能等。以下是一些Python的基础知识&#xff1a; 1. Python的注释 Python的注释用于在代码中添加说明&#xff0c;以提高代码的可读性。注释在代码执行时…...

二叉树基础:什么样的二叉树适合用数组来存储?

二叉树基础:什么样的二叉树适合用数组来存储? 在计算机科学中,二叉树是一种非常重要的数据结构。它具有许多应用,如搜索、排序、表达式解析等。在存储二叉树时,我们可以使用多种方法,其中一种是使用数组。但是,并不是所有的二叉树都适合用数组来存储。那么,什么样的二…...

iTOP-RK3568开发板独立NPU通过算法加特应用到以下的场景

iTOP-3568开发板采用瑞芯微RK3568处理器&#xff0c;内部集成了四核64位Cortex-A55处理器。主频高达2.0Ghz&#xff0c;RK809动态调频。集成了双核心架构GPU&#xff0c;ARM G52 2EE、支持OpenGLES1.1/2.0/3.2、OpenCL2.0、Vulkan1.1、内嵌高性能2D加速硬件。 内置独立NPU,算力…...

Java基于SpringBoot微信小程序的跳蚤市场系统设计与实现(lw+数据库+讲解等)

项目运行截图 技术框架 后端采用SpringBoot框架 Spring Boot 是一个用于快速开发基于 Spring 框架的应用程序的开源框架。它采用约定大于配置的理念&#xff0c;提供了一套默认的配置&#xff0c;让开发者可以更专注于业务逻辑而不是配置文件。Spring Boot 通过自动化配置和约…...

【分布式微服务云原生】《Redis 的高效之道:线程模型、IO 模型与 Reactor 模型全解析》

标题&#xff1a;《分布式缓存Redis 的高效之道&#xff1a;线程模型、IO 模型与 Reactor 模型全解析》 摘要&#xff1a;本文深入探讨分布式缓存 Redis 的 I线程模型、IO 模型以及 Reactor 模型。详细介绍了 Redis 在不同版本中的线程变化、IO 模型的特点和工作流程&#xff…...

科研类型PPT的制作技巧

目录 科研类型PPT的制作技巧 荣誉: 首页:ppt开头结尾 小标题 重点标记:加粗红色下划线 使用三线表 图片,文本排版 一、明确目的与受众分析 二、基础设计原则 三、内容组织与呈现 四、绘图与模型制作 五、其他注意事项 科研类型PPT的制作技巧 荣誉: 首页:ppt开…...

rom定制系列------小米6x_MIUI14_安卓13刷机包修改写入以及功能定制 界面预览

在接待一些定制化系统中。有很多工作室或者一些特殊行业的友友需要在已有固件基础上简略修改其中的功能。方便使用。例如usb调试默认开启。usb安装设置以及usb安装与内置删减一些app的定制服务。今天给友友预览其中小米6X此款机型定制相关的一些界面与功能演示。 定制机型以及…...

Qwen3.5-2B模型在Web开发中的创新应用:智能内容生成与审核

Qwen3.5-2B模型在Web开发中的创新应用&#xff1a;智能内容生成与审核 1. 引言&#xff1a;当Web开发遇上AI内容生成 想象一下这样的场景&#xff1a;用户上传了几张旅行照片&#xff0c;系统自动生成了一篇图文并茂的游记草稿&#xff1b;或者社区平台能够实时审核用户上传的…...

如何快速实现Brick Design国际化:构建多语言应用的完整指南

如何快速实现Brick Design国际化&#xff1a;构建多语言应用的完整指南 【免费下载链接】brick-design 低代码框架&#xff0c;支持流式布局与自由布局拖拽编排&#xff0c;可视化拖拽、随意嵌套组合、实时渲染、实时辅助线展示、自由布局支持辅助对齐、支持自动吸附、实时组件…...

Pangolin变量系统详解:实时调试与参数调优的终极方案

Pangolin变量系统详解&#xff1a;实时调试与参数调优的终极方案 【免费下载链接】Pangolin Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input. 项目地址: https://gitcode.com/gh_mir…...

跑不出密码别怪字典!实战解析Kali Linux中aircrack-ng跑包效率提升的5个关键技巧

跑不出密码别怪字典&#xff01;实战解析Kali Linux中aircrack-ng跑包效率提升的5个关键技巧 当你盯着终端里aircrack-ng跑包的进度条&#xff0c;看着它缓慢地遍历字典却始终无法命中正确密码时&#xff0c;那种挫败感每个渗透测试者都深有体会。但问题真的出在字典上吗&…...

基于Matlab Simulink的单相PWM整流器仿真模型:全桥整流,电压电流PI双闭环控制...

单相PWM整流器仿真模型 单相全桥整流 电压电流PI双闭环 输出电压可调 输入交流220V/50Hz,输出直流电压可调 Maltab/simulink玩过电力电子的老铁们肯定对PWM整流器不陌生。今天咱们来撸一个单相全桥PWM整流器的Simulink仿真&#xff0c;支持输出电压连续可调的那种。先上张主电…...

新手福音:在ubuntu上用快马ai生成你的第一个python猜数字游戏

作为一个刚接触Ubuntu和Python编程的新手&#xff0c;第一次在命令行里跑起自己写的程序时那种成就感&#xff0c;相信很多人都有共鸣。今天就用InsCode(快马)平台的AI辅助功能&#xff0c;带大家零基础实现一个经典的数字猜谜游戏。整个过程完全在Ubuntu终端完成&#xff0c;不…...

磁链观测器在VESC中使用的方法:实现0速闭环启动的工程实践与代码文档仿真对应

磁链观测器 vesc中使用的方法。 已经移植到了自己的工程中&#xff0c;实现0速闭环启动。 代码、文档、仿真是一一对应的&#xff0c;方便学习。送仿真模型&#xff0c;送翻译的对应的lw。引言 永磁同步电机&#xff08;Permanent Magnet Synchronous Motor, PMSM&#xff09;因…...

别让格式拖垮论文!Paperxie AI 一键盘活你的毕业定稿

paperxie-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AIPPThttps://www.paperxie.cn/format/typesettinghttps://www.paperxie.cn/format/typesetting 凌晨两点的宿舍&#xff0c;键盘敲击声断断续续&#xff0c;桌前的本科生盯着屏幕上的论文文档叹气 —— 内…...

通义千问2.5-7B省钱部署案例:GGUF量化仅4GB,3060流畅运行

通义千问2.5-7B省钱部署案例&#xff1a;GGUF量化仅4GB&#xff0c;3060流畅运行 用一张RTX 3060显卡&#xff0c;4GB显存就能流畅运行70亿参数的大模型&#xff1f;这不是天方夜谭&#xff0c;而是通义千问2.5-7B带来的真实体验。 1. 为什么选择通义千问2.5-7B&#xff1f; 如…...

Harness十篇博客

propmt1. Harness engineering (OpenAI)&#xff1a;关于如何通过约束与验证构建可靠agent-first软件的实践报告。​2. Building Effective AI Agents&#xff1a;Anthropic关于何时使用工作流或自治代理以及如何组织系统的实践指南。​3. Writing effective tools for AI agen…...