G1 垃圾回收器

概述

  1. 吞吐量和最短停顿时间本来就互相矛盾,Parallel Old追求的是吞吐量,CMS追求的是STW的最短,而G1通过把堆分成多个相对独立的Region块,并行的进行选择性的回收,在满足容忍的最大停顿的前提下,实现最大化的吞吐量,并且自动调整各个区块的大小,最终实现一个两者兼顾的回收器。

G1中的年轻代,可以说明一下几点:

  • YGC触发的条件是Eden区满了(Eden可能是几个Region)
  • Survivor区不分S0和S1,可以认为所有的空白块都是S1,因为YGC和MajorGC都是采用复制算法,都是复制到一个空白的内存块当中。
  • 年轻代垃圾回收使用多线程并行进行,需要STW
  • 年轻代内存由一组非连续的区域组成,而且Eden、S区的大小是动态调整的
  • 存活对象被拷贝到新的幸存区或者年老代区域(超过存活ratio的对象进入老年代)
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在前一篇的文章《HotSpot垃圾回收算法概述》里面,对于Serial, Parallel和CMS几种垃圾回收器做...
    flycash阅读 74,494评论 21 80
  • 因为G1的堆内存划分和这不太一样。我就来详细的探讨下G1。G1收集器采用不同的方法来分配堆, G1 将内存分配为 ...
    风雨it路阅读 1,340评论 0 0
  • 本文由作者自行翻译,未经作者授权,不得随意转发。后续作者会陆续发布一系列关于JVM内存管理的文章,敬请期待。 原文...
    猿学堂阅读 1,906评论 1 52
  • 垃圾收集算法 标记清除(会有内存碎片,大对象时更有可能因为没有足够的连续内存而触发GC,但是可以降低了STW的时间...
    黄靠谱阅读 3,713评论 0 3
  • G1垃圾收集器 G1是一个面向服务端的JVM垃圾收集器,适用于多核处理器、大内存容量的服务端系统。 它满足短时间停...
    LeonLu阅读 12,540评论 3 2

友情链接更多精彩内容