首页 > 编程语言 >JVM四种垃圾回收算法以及G1垃圾回收器(面试)

JVM四种垃圾回收算法以及G1垃圾回收器(面试)

时间:2024-09-15 21:20:44浏览次数:10  
标签:G1 标记 回收 算法 内存 节点 垃圾

JVM 垃圾回收算法

标记清除算法:标记清除算法将垃圾回收分为两个阶段:标记阶段和清除阶段
在标记阶段通过根节点,标记所有从根节点开始的对象。然后,在清除阶段,清除所有未被标记的对象
适用场合存活对象较多的场景下比较高效
缺点:容易产生内存碎片
复制算法:从根节点进行扫描,标记出所有的存活对象,然后将这些存活的对象复制到一块新的内存上,之后将原来的旧内存全部回收
适用场合: 存活对象较少的情况下比较高效
缺点:复制过程需要一块儿空的内存空间,对内存消耗较大。
标记整理算法:是标记清除算法的优化版本
在标记阶段通过根节点(GC Roots),标记所有从根节点开始的对象。但在清除阶段,它会将所有的存活对象压缩到内存的一端再清理边界外所有的空间。避免了内存碎片的产生
分代回收:分代收集算法就是目前虚拟机使用的回收算法,一般情况下将堆区划分为老年代和新生代

垃圾回收器

G1垃圾回收器使用分代回收算法,任何垃圾回收器在进行工作的时候都会出现 STW,Stop the World 停止用户线程程
G1 全称 Garbage-First 通过将堆内存划分为多个 Region 来实现可预测的停顿时间模型。在 G1 当中,新生代和老年代已经不再是物理隔离,而都是被划分一个个 Region 区域
G1 垃圾回收器的整个实现过程分为四个步骤:

  1. 初始标记:标记根节点的直接关联对象。这个阶段会STW;
  2. 并发标记:通过根节点找到存活的对象。这个阶段 GC 线程是与用户线程同时运行的
  3. 最终标记:修正并发标记过程中因用户线程继续运行而导致产生新的引用更新。同样的这里也需要 STW;
  4. 筛选回收:筛选回收这里会对每个 Region 的回收成本进行排序,根据用户期望的停顿时间来制定收回计划。这个阶段 GC 线程是与用户线程同时运行的

标签:G1,标记,回收,算法,内存,节点,垃圾
From: https://blog.csdn.net/kiku1002149488/article/details/142256969

相关文章

  • 清理内存还只会从桌面拖拽进回收站?进来学习清理内存的正确方式
    电脑清理内存的方法随着电脑的使用,内存会被不断的占用,如果不及时清理,会导致电脑运行变慢,甚至崩溃。因此,清理电脑内存是非常重要的。下面介绍几种清理电脑内存的方法。 首先,可以使用操作系统自带的工具来清理内存。Windows系统自带的“磁盘清理”工具可以帮助清理系统垃圾文件,清......
  • 清理C盘缓存,清理电脑C盘缓存垃圾的操作步骤
    清理电脑C盘缓存垃圾是维护系统性能和释放磁盘空间的重要步骤。以下是一些详细的操作步骤,供你参考:使用磁盘清理工具步骤:打开“此电脑”(或“我的电脑”):在桌面或文件资源管理器中找到并打开它。选择C盘并右键点击:在“此电脑”窗口中,找到并右键点击C盘(通常是系统盘)。选择“属......
  • 深度!程序员生涯的垃圾时间(上)
    1很多程序员对互联网行业中广泛讨论的“35岁危机”表示不满,似乎所有的程序员都有着35岁的职业保质期。然而,随着AI技术的兴起,这场翻天覆地的技术革命正以更加残酷且直接的方式渗透到各行各业。程序员的核心价值正在被自动化和智能工具所取代。程序员不再面临传统意义上的35岁年龄......
  • 旧衣回收小程序:开启旧衣回收新体验
    随着社会的大众对环保的关注度越来越高,旧衣物回收市场迎来了快速发展时期。在数字化发展当下,旧衣回收行业也迎来了新的模式----互联网旧衣回收小程序,旨在为大众提供更加便捷、简单、透明的旧衣物回收方式,通过手机直接下单,商家上门回收。互联网回收模式的出现也为旧衣回收行业的发展......
  • 【csp201912-2】回收站选址
    题目背景 开学了,可是校园里堆积了不少垃圾杂物。 热心的同学们纷纷自发前来清理,为学校注入正能量~题目描述通过无人机航拍我们已经知晓了n处尚待清理的垃圾位置,其中第i(1≤i≤n)处的坐标为(x,y),保证所有的坐标均为整数。我们希望在垃圾集中的地方建立些回收站。具体来说,对......
  • 《垃圾回收的算法与实现》-算法-摘抄
    本文是书籍《垃圾回收的算法与实现》的摘抄,不涉及算法源码及步骤讲解模块。预备对象由头(header)和域(field)构成。头:对象中保存对象本身信息的部分,主要含有以下信息:对象的大小和种类。域:对象使用者在对象中可访问的部分,数据类型有指针、非指针;指针是指向内存空间中某块区域的值;非......
  • Vastbase G100数据库安装
    1、VastbaseG100数据库基础环境准备:1.1、关闭防火墙: 2.13、启动数据库(在vastbase用户下进行):vb_ctlstart2.14、创建表空间、用户、数据库:vsql-r(登录数据库指令)createtablespacetesttbsrelativelocation'tablespace/testtbs';createusertestwithdefaultta......
  • 多目标优化算法求解36个多目标测试函数(ZDT1、ZDT2、ZDT3、ZDT4、ZDT6、DTLZ1-DTLZ9、W
    36个多目标测试函数(ZDT1、ZDT2、ZDT3、ZDT4、ZDT6、DTLZ1-DTLZ9、WFG1-WFG9、UF1-UF10、LSMOP1-LSMOP3)是专门为了测试和比较不同多目标优化算法的性能而设计的。下面是每个函数集的简要介绍:ZDT(Zitzler-Deb-Thiele)函数集:ZDT系列是一组经典的多目标优化测试函数,由EckartZit......
  • 基于java+ssm+vue的垃圾分类微信小程序
    项目介绍现代经济快节奏发展以及不断完善升级的信息化技术,让传统数据信息的管理升级为软件存储,归纳,集中处理数据信息的管理方式。本垃圾分类小程序就是在这样的大环境下诞生,其可以帮助管理者在短时间内处理完毕庞大的数据信息,使用这种软件工具可以帮助管理人员提高事务处理......
  • 废品回收小程序搭建,回收市场的机遇
    随着经济的快速发展,居民生活水平普遍提高,产生的各类废品也在不断增加,为废品回收市场提供了发展基础。当下,在大众环保意识增加下,废品回收行业也将成为一个具有广阔发展前景的朝阳行业!目前,废品回收市场的规模在不断扩大,传统的回收模式展现出了较多的局限性,回收效率低等。因此,为了提供......