『面试必问JVM系列』常见的垃圾回收器详解

JVM系列之经典垃圾回收器(上篇) 垃圾回收器 阅读详情

垃圾回收器(一)

相关视频教程(来自动力节点):https://www.bilibili.com/video/BV1e64y197rh

相关资料下载:http://www.bjpowernode.com/?csdn

收集算法是内存回收的理论,而垃圾回收器是内存回收的实践。

说明:如果两个收集器之间存在连线说明他们之间可以搭配使用。

1. Serial收集器

这是一个单线程收集器。意味着它只会使用一个 CPU 或一条收集线程去完成收集工作,并且在进行垃圾回收时必须暂停其它所有的工作线程直到收集结束。

2. ParNew 收集器

可以认为是 Serial 收集器的多线程版本。

  • 并行:Parallel,指多条垃圾收集线程并行工作,此时用户线程处于等待状态
  • 并发:Concurrent,指用户线程和垃圾回收线程同时执行(不一定是并行,有可能是交叉执行),用户进程在运行,而垃圾回收线程在另一个 CPU 上运行。

3. Parallel Scavenge 收集器

这是一个新生代收集器,也是使用复制算法实现,同时也是并行的多线程收集器。

CMS 等收集器的关注点是尽可能地缩短垃圾收集时用户线程所停顿的时间,而 Parallel Scavenge 收集器的目的是达到一个可控制的吞吐量(Throughput = 运行用户代码时间 / (运行用户代码时间 + 垃圾收集时间))。

作为一个吞吐量优先的收集器,虚拟机会根据当前系统的运行情况收集性能监控信息,动态调整停顿时间。这就是 GC 的自适应调整策略(GC Ergonomics)。

垃圾回收器(二)

1.Serial Old 收集器

收集器的老年代版本,单线程,使用 标记 —— 整理。

2. Parallel Old 收集器

Parallel Old 是 Parallel Scavenge 收集器的老年代版本。多线程,使用 标记 —— 整理

3. CMS 收集器

CMS (Concurrent Mark Sweep) 收集器是一种以获取最短回收停顿时间为目标的收集器。基于 标记 —— 清除 算法实现。

运作步骤:

  • 初始标记(CMS initial mark):标记 GC Roots 能直接关联到的对象
  • 并发标记(CMS concurrent mark):进行 GC Roots Tracing
  • 重新标记(CMS remark):修正并发标记期间的变动部分
  • 并发清除(CMS concurrent sweep)

缺点:对 CPU 资源敏感、无法收集浮动垃圾、标记 —— 清除 算法带来的空间碎片

4. G1 收集器

面向服务端的垃圾回收器。

优点:并行与并发、分代收集、空间整合、可预测停顿。

运作步骤:

  • 初始标记(Initial Marking)
  • 并发标记(Concurrent Marking)
  • 最终标记(Final Marking)
  • 筛选回收(Live Data Counting and Evacuation)

linux 内核vxlan收发包流程 1.vxlan口收包处理流程 前面几章详细介绍了vxlan接口的使用,而且已经知道vxlan是 MAC IN UDP中的封装,因此,在解封装之前,一切按照原有流程走,在此复习一下内核收发包流程(驱动层的数据处理这次不再解析,直接从__netif_receive_skb_core开始) #物理网卡处理中断,触发softirq i40e_intr └─napi_schedule_irqoff #i40e softirq把包放到per cpu backlog,触发softirq i40e_napi_p 阅读详情

相关推荐

永磁同步电机控制笔记:foc控制原理通俗讲义

引言 到此为止,永磁同步电机控制相关文章已经写了7篇,其中simulink仿真系列文章5篇,控制笔记系列文章2篇,恍惚间感觉少了一篇概论,在此插入一篇,也算是对入坑电机控制一年半来的知识梳理。 文章目录引言一、同步电机是怎么转起来的二、什么样的旋转磁场效率最高三、怎么精准控制旋转磁场的方向四、怎样调节dq轴电流 一、同步电机是怎么转起来的 永磁同步电机结构如下: 外围是定子绕组,中间为永磁体,设...

搞电机的博客 2万+

JVM——垃圾回收器(GC)详解(一文搞懂垃圾回收器)

JVM——垃圾回收器(GC)详解(一文搞懂垃圾回收器)

xdx_dili的博客 8399

GOM Correlate拉伸试验后处理操作

本文描述了使用GOM Software 2022对拉伸试样进行后处理的操作,包括设置检测点、引伸计、输出应变数据到表格、输出报告为视频等

qq_45008924的博客 4668

java 垃圾回收器 详解

java 垃圾回收器 详解

T_Y_F_的博客 2625

STM32F103上跑mbedtls 2.24.0:手把手教你为MQTTS加密通信打好基础

本文详细介绍了如何在STM32F103上移植和裁剪mbedtls 2.24.0,为MQTTS加密通信打下坚实基础。通过版本选择、开发环境配置、深度裁剪策略和加密功能验证,帮助开发者在资源受限的MCU上实现安全通信。文章还提供了常见问题解决方案和性能优化技巧,助力物联网设备开发。

weixin_30321709的博客 462

【系统架构设计师】预测试卷一:综合知识(75道选择题)

软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式,架构风格反映领域中众多系统所共有的结构和 (48),强调对架构(49)的重用。 (48) A. 语义特性 B. 功能需求 C. 质量属性 D. 业务规则 (49) A. 分析 B. 设计 C.实现

数据知道的博客 7767

Java经典垃圾回收器详解

串行回收器是JVM中最古老、最简单的垃圾回收器,主要适用于单核处理器环境或客户端应用程序。ParNew是Serial的多线程版本,专门针对新生代的垃圾回收器。ParallelGC是JDK 8的默认垃圾回收器,专注于最大化应用程序的吞吐量。特性串行回收器ParNewParallelGC回收区域新生代+老年代新生代新生代老年代线程模式单线程多线程多线程多线程回收算法复制/标记-整理复制复制标记-整理设计目标简单稳定降低暂停时间高吞吐量高吞吐量暂停时间长较短可能较长可能较长。

m0_73971785的博客 1016

Unreal5 从入门到精通之 如何实现 离线语音识别

本文介绍了如何使用离线语音识别插件 Offline Speech Recognition 进行本地语音转文本处理。该插件支持离线运行,用户可以通过下载并运行语言服务器(如 Vosk)来处理语音数据。文章详细说明了如何设置语言服务器、下载语言模型,并在虚幻引擎(UE)项目中配置麦克风和语音捕获。此外,还介绍了如何将 SoundWave 作为输入,以及如何通过节点将语音数据发送到语言服务器进行处理。最后,提供了相关文档链接以供进一步参考。

TxNet 908

面试官常问的垃圾回收器,看完这篇文章全搞懂

前言 前几天写了一篇《JVM性能调优实战:让你的IntelliJ Idea纵享丝滑》,其中有对GC垃圾回收器的选择尝试,本篇我们就来详细的看看JVM中常见的垃圾回收器有哪些以及每个垃圾回收器的特点,这也是面试的时候经常被问的内容 JVM堆内存概览 在聊垃圾回收器之前,我们先来看看JVM堆内存的区域划分是怎么样的,看下图 因为虚拟机使用的垃圾回收算法是分代收集算法,所以堆内存被分为了新生代和老年代 新生代使用的垃圾回收算法是复制算法,所以新生代又被分为了 Eden 和Survivor;空间大小比

AI乔治 409

28、数字电路测试与半导体内存测试全解析

本文全面解析了数字电路中的顺序电路测试生成方法与半导体内存测试技术。内容涵盖顺序电路中的故障检测、多重观察测试、可驱动性分析、伪组合电路测试及初始化问题,并深入探讨了内存技术发展、故障模型、测试流程与未来趋势。重点介绍了DRAM、SRAM等主流内存类型的特点,以及制造和使用过程中面临的永久性与非永久性故障挑战,提出了基于故障模型的高效测试策略与优化方案。

go5gopher的博客 126

基于YOLO-world训练模型的完整教程:从数据准备到微调训练

本文提供了YOLO-world模型训练的完整教程,涵盖从环境配置到微调训练的全流程。首先介绍了YOLO-world项目的安装与配置步骤,包括依赖安装和CUDA环境设置;接着详细说明了数据集的准备方法,包括COCO格式数据集的组织结构和自定义数据集的类别定义;然后阐述了配置文件的修改要点,包括超参数调整和数据集路径设置;最后讲解了训练命令的使用方法及常见问题的解决方案。本教程旨在帮助读者快速掌握YOLO-world模型的训练技能,适用于计算机视觉领域的研究人员和开发者。

FJN110的博客 1109

各垃圾回收器详解

单线程时代(1998-2004):Serial收集器主导吞吐量优先(2002-2011):Parallel Scavenge崛起低延迟革命(2004-2017):CMS和G1的博弈新一代回收器(2018至今):ZGC、Shenandoah实现亚毫秒级停顿在Java虚拟机(JVM)的众多垃圾收集器(Garbage Collector, GC)中,CMS(Concurrent Mark Sweep)占有特殊的历史地位。

qq_74156239的博客 344

C#实现每日定时执行制定程序(附完整源码)

C#实现每日定时执行制定程序(附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 867

华为面试官问我:你真的明白Java垃圾回收器吗?我生气了!!(︶︿︶)

第一阶段:串行垃圾回收器:jdk1.3.1之前Java虚拟机仅仅只支持Serial收集器 第二阶段:并行垃圾回收器:随着多核的出现,Java引入了并行垃圾回收器,充分利用多核性能提升垃圾回收效率 第三阶段:并发标记清理回收器CMS:垃圾回收器可以和应用程序同时运行,降低暂停用户线程执行的时间 第四阶段:G1(并发)回收器:初衷是在清理非常大的堆空间的时候能满足特定的暂停应用程序的时间,与CMS相比会有更少的内存碎片【资料获取】 1 垃圾回收算法 1-1 标记清除算法 算法概述 优点:回收速度快 ..

wj1314250的博客 1万+

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

贝叶斯统计 [韦来生编]

贝叶斯(Bayes)统计是近几十年来迅速发展起来的数理统计的一个重要分支。贝叶斯方法与经典统计方法的主要不同之处是进行统计推断时除了利用样本信息外,还要利用参数的先验信息,因此可以提高统计推断或统计决策的效果。它在经济、金融、生物、医学、自然科学和社会科学等许多领域具有广泛的应用。贝叶斯方法的研究已渗透到了统计学的几乎所有领域。作者在给中国科学技术大学概率论与数理统计专业本科生开设的“数理统计”课程中有一章专门讲授“贝叶斯方法和统计决策理论”,近十年来也给中国科学技术大学概率统计专业研究生开设过几次“贝叶斯分析”课。本书是在对过去讲稿的内容作了适当的增减和调整的基础上完成的。  本书共分六章。第1章是绪论,介绍了贝叶斯统计的若干基本概念,同时对必要的数理统计的基础知识有重点地作了回顾。第二章介绍了确定先验分布的若干可供选择的方法。第三章介绍了几类常见统计模型参数的后验分布的主要结果和计算方法。第四章和第五章分别介绍了“贝叶斯统计推断”和“贝叶斯统计决策”的内容。第六章介绍了贝叶斯统计计算的若干方法,包括蒙特卡洛方法和马尔可夫链蒙特卡洛(MCMC)方法以及相关统计软件的简介。本书的每一章附右大量的例题和习题,书末附有常用的几个表格和部分习题解答供读者查用。  大约可在54学时内讲授本书的第1章至第六章的主要内容,教师可根据学时需要选讲本书第1章至第六章的部分内容。书中标“*”号的章节可略去不讲,留给读者作为阅读材料。第六章例题中的R代码和部分例题的数据文件等可从作者个人主页下载。  作者在编写本书的过程中参考了J.O.Berger教授的《统计决策论及贝叶斯分析》和茆诗松教授编写的《贝叶斯统计》等书中的一些内容,以及《贝叶斯分析》一书中由张伟平博士编写的有关贝叶斯统计计算的一些内容。在此表示衷心感谢。  本书编写准备过程中,中国科学技术大学统计与金融系的几个研究生帮助完成了本书部分中文的录入和排版,作者对他们的辛勤工作表示真诚的感谢。高等教育出版社为本书的出版给予了大力支持。在此一并致谢。

JVM垃圾回收器

例如,在处理大量并发请求时,我们可以采用多线程或多进程的方式,将请求分发到不同的处理单元上,以提高系统的吞吐量和响应速度。例如,在G1回收器中,JVM会根据应用的实际运行情况,动态地调整各代的比例和垃圾回收的时机,以达到全局最优的效果。:Parallel回收器是Serial回收器的多线程版本,它利用多核CPU的优势,提高了垃圾回收的效率。JVM的垃圾回收器从最初的Serial回收器,发展到Parallel回收器、CMS回收器和G1回收器,经历了从单线程到并发与并行的转变。此外,我们还可以通过设置如。

guangzhi0633的专栏 1445

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

【JVM系列】你说说都有哪些垃圾回收器

垃圾回收的是新生代、永久代对吧?那永久代还会进行回收吗?会的,永久代里的废弃常量和无用的类会被回收。例如类里面的常量没有其他任何引用,如果发生内存回收,有必要的话会进行。。。

JavaSouth南哥 3262

十五.吊打面试官系列-JVM优化-JVM垃圾回收器详解

继上篇文章《JVM垃圾回算法详解》,我们本篇文章来讲解一下JVM垃圾回收器。垃圾标记算法是标记哪些对象是垃圾,垃圾回收算法是回收的理论算法,垃圾回收器才是真正回收垃圾的组件。不同的垃圾回收器使用了不同的垃圾回收算法。

墨家巨子@俏如来 1697

图解JVM - 13.垃圾回收器

本文图解解析JVM垃圾回收器工作机制,对比Serial、Parallel、CMS、G1及ZGC等主流回收器的实现原理。重点阐述分代回收策略、标记清除/复制算法差异,分析各回收器在并发处理、内存碎片整理及STW控制上的优化方案,帮助开发者根据吞吐量、延迟等需求选择适配的垃圾回收策略。

Anarkh_Lee的博客 1861

JVM垃圾回收器上篇

有了前面的理论铺垫,接下来我们正式开始学习实际垃圾回收器。

javashitu的博客 1612

面试必问的JVM垃圾收集机制详解

作为一名有八年经验的Java后端开发工程师,我深知垃圾回收(GC)机制在日常开发中的重要性。GC不仅是Java自动内存管理的核心,更是**系统稳定性和性能调优的关键

Minoz_wl的博客 703

Java面试-常见的垃圾回收器:Serial、Parallel、CMS、G1、ZGC

《Java垃圾回收器深度解析》摘要:本文系统梳理Java五大主流垃圾回收器(Serial、Parallel、CMS、G1、ZGC)的工作原理与适用场景。通过生动比喻(如Serial是"单兵作战的扫街大爷")、流程图解和代码示例(如ParallelGC配置),深入解析各回收器特点:从单线程的Serial到追求吞吐量的Parallel,从低停顿的CMS到分区收集的G1,再到革命性的ZGC。文章包含GC参数配置指南、决策树和面试高频问题,帮助开发者根据应用场景(内存大小、延迟要求等)选择最优回

千淘万漉虽辛苦,吹尽狂沙始到金 2万+

JVM Serial垃圾回收器:原理与优化

💡亲爱的技术伙伴们:你是否正被这些问题困扰——我打磨的《 Java高级开发岗面试急救包》正式上线!课程介绍如下:📕我是廖志伟,一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》、(架构篇)、作者、清华大学出版社签约作家、Java领域优质创作者、优快云博客专家、阿里云专家博主、51CTO专家博主、产品软文专业写手、技术文章评审老师、技术类问卷调查设计师、幕后大佬社区创始人、开源项目贡献者。

我是Java程序员廖志伟,感谢朋友们的支持!不定期贡献一篇高品质、过万文字、图文并茂且附有视频解说、满载代码示例注释的良心之作,坚决杜绝粗制乱造。 945

JVM面试必问:G1垃圾回收器

摘要:G1垃圾回收器是一款主要面向服务端应用的垃圾收集器。

华为云官方博客 1417

关于JVM常见的十道面试题(超详细!!!)

本文详细介绍了Java中的强引用、软引用、弱引用和虚引用,以及它们的使用场景。同时探讨了垃圾回收算法如标记-清除、标记-整理、复制和分代算法,以及JVM中的常见垃圾回收器G1和CMS的区别,强调了内存管理在Java中的重要性。

2202_75481735的博客 2941

Shenandoah JVM垃圾回收器详解

Shenandoah,作为Oracle公司于2018年推出的一款新型垃圾回收器,旨在解决传统垃圾回收器在低延迟和高吞吐量场景下的性能瓶颈。它通过将垃圾回收过程与应用程序的执行过程分离,实现了并发垃圾回收,显著降低了垃圾回收对应用程序性能的影响。

我是Java程序员廖志伟,感谢朋友们的支持!不定期贡献一篇高品质、过万文字、图文并茂且附有视频解说、满载代码示例注释的良心之作,坚决杜绝粗制乱造。 901

JVM 面试必问的 CMS,你懂了吗?

面试必问的 CMS 深度解析

程序员囧辉 5015

JVM 全量垃圾回收器(GC)详解

JVM垃圾回收器核心知识点摘要: 分代模型:新生代(复制算法)和老年代(标记清除/整理算法)构成GC设计基础。 回收器分类: 按区域:新生代(Serial/ParNew/ParallelScavenge)、老年代(SerialOld/ParallelOld/CMS)、整堆(G1/ZGC) 按执行方式:串行(单线程STW)、并行(多线程STW)、并发(GC与应用线程并行) 核心指标:吞吐量(后台任务优先)与停顿时间(在线业务优先)的权衡。 企业选型: JDK8默认:ParallelScavenge+Paral

萧曳丶 735
上一篇: 『面试必问JVM系列』JVM的四种垃圾回收算法详解
下一篇: 『面试必问JVM系列』内存分配与回收策略
Java___interview
博客等级 码龄6年 154粉丝 109原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值