垃圾收集器|g1收集器
每个region(区域)的大小 1~32M,是2的幂次方
对象储存:
-
0.5region <= 对象 <1 region,这个对象会直接存储在 O区,并标记为H区(超大对象区)
-
对象>1 region,会申请两个H区来存储这个对象
region组成:
-
Rset:region有一块区域叫做Rset,用来记录其他region引用当前region的对象
-
Cset:本次GC需要清理的region集合
YOUNG GC
GC过程:对象拷贝,E + S (from) => S (to)
-
Young Generation:E + S(from)
-
Recently Copied in Young Generation:S (to),未使用时没有标记,拷贝后标记为 S (to)
MIx GC(OLD GC时,会同时有 YOUNG GC)
GC过程
-
初次标记,标记GCRoot直接引用的对象和对象所在的region(称为RootRegion),初次标记会有STW (stop the world)
-
Stop the World,简称STW,指的是Gc事件发生过程中,会产生应用程序的停顿。停顿产生时整个应用程序线程都会被暂停,没有任何响应,有点像卡死的感觉,这个停顿称为STW。
-
-
扫描所有OLD区的Rset,标识 RootRegion有引用的region
-
并发标记,遍历RootRegion有引用的区(上一步标识的region),不用遍历整个OLD区
-
重新标记,本来有使用,但是系统运行后变成未被使用的对象,使用算法SATB,这一步会有STW (stop the world)
-
复制清理,会有STW ,只清理垃圾较多的region
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具