89-G1垃圾收集器内存划分与角色分派

G1垃圾收集器内存划分与角色分派

  • G1的设计规划是要替换掉CMS

    • G1在某些方面弥补了CMS的不足,比如,CMS使用的是mark-sweep算法,自然会产生内存碎片;然而G1基于copying算法,高效的整理剩余内存,而不需要管理内存碎片。
    • 另外,G1提供了更多手段,已达到对GC停顿时间的可控。
  • Hotspot虚拟机主要构成
    在这里插入图片描述

  • 传统垃圾收集器堆结构
    在这里插入图片描述

  • G1收集器堆结构

    • heap被划分为一个个相等的不连续的内存区域(regions),每个region都有一个分代的角色:eden、survivor、old;
    • 对每一个角色的数量并没有强制的限定,也就是说对每种分代内存的大小,可以动态变化;
    • G1最大的特点就是高效的执行回收,优先去执行那些大量对象可回收的区域(region)。
  • G1使用了gc停顿可预测的模型,来满足用户设定的gc停顿时间,根据用户设定的目标时间,G1会自动地选择哪些region要清除,一次清除多少个region

    • G1从多个region中复制存活的对象,然后集中放入一个region中,同时整理、清除内存(copying收集算法)
      在这里插入图片描述
  • G1 vs CMS

    • 对比使用mark-sweep的CMS,G1使用的copying算法不会造成内存碎片;
    • 对比Parallel Scavenge(基于copying)、Parallel Old收集器(基于mark-compact-sweep),Parallel会整个区域做整理导致gc停顿会比较长,而G1只是特定地整理几个region。
    • G1并非一个实时的收集器,与parallel Scavenge一样,对gc停顿时间的设置并不绝对生效,只是G1有较高的几率保证不超过设定的gc停顿时间。与之前的gc收集器对比,G1会根据用户设定的gc停顿时间,智能评估哪几个region需要被回收可以满足用户的设定。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值