JVM垃圾回收机制、JVM垃圾回收算法、JVM CMS与G1垃圾收集,JVM内存模型

文章探讨了Java和CC++的垃圾回收差异,Java使用自动化垃圾回收器,如Serial、ParallelScavenge和CMS。CMS在处理大内存时可能存在浮动垃圾问题,导致stop-the-world事件。文章还介绍了不同的GC算法,如Mark-Sweep、Copying和Mark-Compact,以及它们的优缺点。
摘要由CSDN通过智能技术生成

C C++ 需要自己回收垃圾

重复回收: 回收掉别人的东西

忘记回收: 内存泄漏

Java虚拟机做自动化回收

垃圾回收器

在这里插入图片描述
Root Searching(根可达)

GC Algorithms(垃圾回收算法)

Mark-Sweep(标记清除)

缺点:碎片化,一个洞一个洞

Copying(拷贝)

缺点:内存浪费,每块内存只用一半

Mark-compact(标记压缩)

缺点:把标记的删除,把有用的内容前移

GC的演化

随着内存大小的不断增长而演化

Java1.8
在这里插入图片描述
new: old = 1:2

伊甸园区和幸存者区

伊甸园区

新诞生的对象都在这里

发生在新生代YGC

幸存者区

幸存者1 和 幸存者2 总有一个是空的

Serial(序列化回收)

  • a stop-the-world ,copying collector which uses a single GC thread

Parallel Scavenge(并行清扫)

  • a stop-the-world ,copying collector which uses multiple GC thread

CMS

  • concurrent mark sweep
  • a mostly concurrent, low-pause collector

大内存,用CMS太坑

三色标记算法

在这里插入图片描述
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-kAh0Dlx7-1673255208817)(D:\学习\java\GC\gc_image\1673253681039.png)]

CMS会存在的问题

浮动垃圾会触发STW

GMS最后会remark,会触发STW

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-XRrFxyOp-1673255208817)(D:\学习\java\GC\gc_image\1673254028285.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4Tw6XFie-1673255208817)(D:\学习\java\GC\gc_image\1673254457748.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-JpvPC97q-1673255208818)(D:\学习\java\GC\gc_image\1673254494329.png)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chad__chang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值