• 垃圾收集器|g1收集器


    JVM内存的YOUNG区和OLD都是使用G1垃圾收集器,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

    参考文章 https://github.com/sunwu51/notebook/blob/master/19.09/java_jvm%E5%9E%83%E5%9C%BE%E6%94%B6%E9%9B%86%E5%99%A8.md

  • 相关阅读:
    滤镜
    android 判断网络是否断开
    U5
    android 界面跳转
    光影魔术手 图片压缩
    服务器绑定 独立ip
    Java 开源 SOCKET 框架
    spring aop ehcache
    呼叫中心
    华丽字体
  • 原文地址:https://www.cnblogs.com/yjh1995/p/15902726.html
Copyright © 2020-2023  润新知