垃圾回收

垃圾回收

新生代(标记复制):serial + parnew + paralle Scavenge

老年代(标记整理):serialold + paralleold + CMS(标记清除)

共用:Z1 + ZGC

关注吞吐量:paralle Scavenge + paralleold

关注停顿时间:G1 / paralle Scavenge + CMS

垃圾回收器

CMS

G1

是什么:是 JDK 7 引入的一款 面向低延迟应用 的垃圾收集器,主要用于 大内存(如 6GB 以上) 场景,并在 JDK 9 之后成为默认 GC(替代 CMS)

适用场景:大堆内存(6GB 以上)低停顿(游戏)、 CMS 的替代方案

特点:Region 化管理、Remembered Set、增量回收、可预测的 STW 停顿时间、避免全堆扫描

GC方式:minor mixed full都存在

相关JVM参数:

参数 说明
-XX:+UseG1GC 启用 G1 垃圾回收器
-XX:MaxGCPauseMillis=<N> 设定最大 GC 停顿时间(单位 ms)
-XX:InitiatingHeapOccupancyPercent=<N> 触发并发标记的老年代占比(默认 45%)
-XX:G1HeapRegionSize=<N> 指定 Region 大小(默认 1MB ~ 32MB,取决于堆大小)

 

垃圾回收算法

标记-复制(新生代)

标记-清除(CMS)

标记-整理(G1 or 其他老年代回收器)

 

垃圾回收方式

Minor GC

Mixed GC

定义:Mixed GC 是针对 年轻代老年代 的垃圾回收,它是 G1(Garbage First)垃圾收集器 中的回收类型之一

触发条件:在 G1 垃圾回收器中,当年轻代空间和老年代空间的内存压力较大时,会触发 Mixed GC。此外,G1 会定期进行 Mixed GC,并回收部分老年代对象。

特征:

  • Mixed GC 通常会回收一部分 老年代 对象,因此它的 回收范围Minor GC 要广泛
  • 减少 Full GC 的触发频率:通过回收部分老年代对象,Mixed GC 可以有效避免触发 Full GC,提升性能

回收过程:

  • 年轻代 的对象和一部分 老年代 对象会被一起回收
  • 会对 老年代 执行一次并发的垃圾回收过程,以便释放老年代的内存空间

Full GC

触发条件:常见的有老年代空间不足,System.gc(),方法区内存不足(java8之前)

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇