【转帖】32.MinorGC、MajorGC和FullGC的对比

minorgc,majorgc,fullgc,对比 · 浏览次数 : 0

小编点评

**1. MinorGC、MajorGC和FullGC的对比** | 特征 | MinorGC | MajorGC | FullGC | |---|---|---|---| | 回收范围 | 新生代 | 老年代 | 整堆 | | 触发机制 | 当年轻代空间不足时触发 | 当老年代空间不足时触发 | 当新生代和老年代空间都不足时触发 | | 回收速度 | 很快 | 稍慢 | 较慢 | | 使用场景 | 在内存有限的情况下,以回收少量老年代垃圾 | 在内存充足的情况下,以回收大量老年代垃圾 | 在对全堆垃圾进行回收时使用 | **2. GC触发机制** 1. **年轻代GC (Minor GC)** 触发机制:当年轻代空间不足时,就会触发Minor GC。这里的年轻代指的是Eden区,只有Eden区满的时候才会触发Minor GC,S0区或者S1区满是不会触发GC的。Minor GC发生的很频繁,回收速度也很快。Minor GC会引发STW,暂停其他用户线程,等待垃圾回收结束,用户线程才会恢复运行。 2. **老年代GC (Major GC)** 触发机制。 3. **Full GC**触发机制。

正文

1.MinorGC、MajorGC和FullGC的对比

1.JVM在进行GC的时候,并不是每次都是对新生代、老年代、永久代/元空间一起回收的,大部分的回收都是值新生代。
2.针对HotSpot VM的实现,它里面的GC按照回收区域可以分为两种类型:一种是部分收集(Partial GC),一种是整堆收集(Full FC)

  • 部分收集:不是完整收集整个堆。其中又分为:
    a) 新生代收集(Minor GC / Young GC):只有新生代的垃圾收集。
    b) 老年代收集(Major GC / Old GC):只有老年代的收集。
    目前,只有CMS GC才会有单独收集老年代的行为。
    很多时候Major GCFull GC会混淆使用,需要具体分辨是老年代回收还是整堆回收。
    c) 混合收集:收集整个新生代以及部分老年代的垃圾。
    目前只有G1 GC有这种行为。
  • 整堆收集(Full GC):收集整个java堆和方法区的垃圾

2.GC触发机制

1.年轻代GC(Minor GC)触发机制。

  • 当年轻代空间不足的时候,就会触发Minor GC。这里的年轻代指的是Eden区,只有Eden区满的时候才会触发Minor GCS0区或者S1区满是不会触发GC的。
  • Minor GC发生的很频繁,回收速度也很快。
  • Minor GC会引发STW(Stop the World),暂停其他用户线程,等待垃圾回收结束,用户线程才会恢复运行。

在这里插入图片描述
2.老年代GC(Major GC)触发机制。
在这里插入图片描述
3.Full GC触发机制。

更多JVM文章请访问我的JVM专栏:
https://blog.csdn.net/u011069294/category_10113093.html

</article>

与【转帖】32.MinorGC、MajorGC和FullGC的对比相似的内容:

【转帖】32.MinorGC、MajorGC和FullGC的对比

目录 1.MinorGC、MajorGC和FullGC的对比2.GC触发机制 1.MinorGC、MajorGC和FullGC的对比 1.JVM在进行GC的时候,并不是每次都是对新生代、老年代、永久代/元空间一起回收的,大部分的回收都是值新生代。 2.针对HotSpot VM的实现,它里面的GC按照

[转帖]32位CPU和64位CPU 区别

操作系统只是硬件和应用软件中间的一个平台。 32位操作系统针对的32位的CPU设计。 64位操作系统针对的64位的CPU设计。 操作系统只是硬件和应用软件中间的一个平台。 我们的CPU从原来的8位,16位,到现在的32位和64位。 cpu处理计算的时候“数据”和“指令”是不同对待的。 8位的CPU,

[转帖]Oracle 通过 Exadata 云基础设施 X9M 提供卓越的数据库性能和规模

https://www.modb.pro/db/397202 32个节点的RAC 服务器 每个服务器 两个 64核心的AMD CPU 四个线程干管理 252个线程进行数据库处理 252*32=8064 Exadata Cloud Infrastructure X9M 以相同的价格比上一代产品多 2.

【转帖】MySQL 8.0.32如期而至

MySQL 8.0版本计划 MySQL 8.0开始采用快速迭代开发模式,基本上是每隔3个月就发布一个新的小版本。去年1月18日(2022.1.18)发布MySQL 8.0.28,今年1月17日发布MySQL 8.0.32,再看看其他几个版本的时间,还真是贼守时啊。 版本发布时间上一年版本上一年发布时

[转帖]PostgreSQL 参数优化设置 32GB内存(推荐) 内存参数 检查点 日志参数 自动初始化参数shell脚本

1.修改参数列表 (1)执行计划 enable_nestloop = off #默认为on enable_seqscan = off #默认为on enable_indexscan = on enable_bitmapscan = on max_connections = 1000 #默认为100

[转帖]国产CPU闯入服务器领域 32核心处理器马上要来了

https://new.qq.com/rain/a/20221224A038PT00 龙芯可以说是国产CPU的代表品牌,如今龙芯又有好消息传出。最近,龙芯中科完成了对龙芯3D5000芯片的验证,这意味着这款处理器很快就会面世。龙芯3D5000芯片特殊的地方在于,它是一款面向服务器领域的处理器。 龙芯

[转帖]ARMv8架构概述、相关技术文档以及ARMv8处理器简介

ARMv8架构 文章目录 ARMv8架构参考文档ARMv8架构的概述从32位到64位的变化The changes from 32 bits to 64 bits1,Larger register pool(更大的寄存器池)2,Wider integer registers(具有更宽的整数寄存器)3,

[转帖]Ceph优化系列(四):RocksDB 使用 ARM 64 位 CRC32C 硬件优化指令

一、前言 CRC32(A cyclic redundancy check 32)应用于校验,为了保证数据的正确性,采用的一种检错手段。 CRC32C (CRC32 Castagnoli) 与 CRC32 不同的是它有多项式常数,也就是说生成的CRC表不同,而算法是一模一样. 二、内容 1. Ceph

[转帖]renice和nice

https://www.cnblogs.com/qiynet/p/17555881.html 将行程 id 为 987 及 32 的行程与行程拥有者为 daemon 及 root 的优先序号码加 1 renice +1 987 -u daemon root -p 32 【可以调整正在运行的进程】 n

[转帖]Kickstart文件的编写

kickstart 完整示例 https://rtoax.blog.csdn.net/article/details/123448892 # Generated by Anaconda 34.25.0.17 # Generated by pykickstart v3.32 #version=RHEL