垃圾回收器—G1(Garbage First)

G1简介

Jdk7正式引入G1,jdk9及以后默认的垃圾回收器。下图是简单的G1示意图:
G1回收器

  • 如上图所示,G1收集器将整个Java堆默认划分为2048个大小相同的独立region块,每个region的大小控制在1MB-32MB之间,必须是整数,可通过参数设定。虽然任然保留了年轻代和老年代的概念,但是新生代和老年代不再是物理隔离了,特们都是由一部分不连续的region组成。
  • 上图有色方块有各自所属的区域,s代表survivor区;白色方块表示还未使用的堆空间,GC时使用复制算法用得上或者新对象进来存储用得上。蓝色的humongous主要用于存储大对象,超过了1.5个region就存储在该区域。
  • 当一个H区存不下一个大对象时,G1会寻找连续的H区来存储,为了能够找到连续的H区有时候不得不启动Full GC。

G1的特点

  • 是一个并行回收器,将堆分割为多个不相关的区域(region,各个region物理上不连续),使用不同的Regin表示Eden、survivor、老年代等。
  • G1的GC有计划的避免整个Java堆进行GC,G1跟踪各个region里的垃圾堆积的价值大小(回收获得的空间大小以及回收所需的时间经验值),在后台维护一个优先列表,每次根据允许收集的时间下,优先回收价值最大的region。所以名为垃圾优先(garbage first)。
  • G1主要针对配备多核CPU及
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值