首页 > 其他分享 >Jvm--MinorGC过程

Jvm--MinorGC过程

时间:2023-02-03 18:56:15浏览次数:37  
标签:Survivous Eden MinorGC -- S1 S0 区域 GC Jvm

第一次GC:

在不断创建对象的过程中,当Eden区域被占满,此时会开始做Young GC也叫Minor GC

1)第一次GC时Survivous中S0区和S1区都为空,将其中一个作为To Survivous(用来存储Eden区域执行GC后不能被回收的对象)。比如:将S0作为To Survivous,则S1为From Survivous。

2)将Eden区域经过GC不能被回收的对象存储到To Survivous(S0)区域(此时Eden区域的内存会在垃圾回收的过程中全部释放),但如果To Survivous(S0)被占满了,Eden中剩下不能被回收对象只能存放到Old区域。

3)将Eden区域空间清空,此时From Survivous区域(S1)也是空的。

4)S0与S1互相切换标签,S0为From Survivous,S1为To Survivous。

 

第二次GC:

当第二次Eden区域被占满时,此时开始做GC

1)将Eden和From Survivous(S0)中经过GC未被回收的对象迁移到To Survivous(S1),如果To Survious(S1)区放不下,将剩下的不能回收对象放入Old区域;

2)将Eden区域空间和From Survivous(S0)区域空间清空;

3)S0与S1互相切换标签,S0为To Survivous,S1为From Survivous。

 

第三次,第四次一次类推,始终保证S0和S1有一个空的,用来存储临时对象,用于交换空间的目的。反反复复多次没有被淘汰的对象,将会被放入Old区域中,默认15次(由参数--XX:MaxTenuringThreshold=15 决定)。

标签:Survivous,Eden,MinorGC,--,S1,S0,区域,GC,Jvm
From: https://www.cnblogs.com/LoveShare/p/17090224.html

相关文章

  • [Typescript] Defining exclusive properties with TypeScript
    typeA={other:'string',url:'string'}typeB={other:'string',ids:'string'}typeExclusive<TextendsRecord<PropertyKey,unknown>,UextendsReco......
  • 自定义注解,切面
    1.定义注解FlushRedis@Target(ElementType.METHOD)//注解用来修饰方法@Retention(RetentionPolicy.RUNTIME)//运行时@Documented//文档public@interfaceFlushR......
  • 【题解】P5219 无聊的水题 I
    思路prufer序列+卷积优化dp.首先考虑到令\(a\)为原树的prufer序列,则\(\sum\limits_{i=1}^{n-2}[a_i=k]=\operatorname{deg}(k)\),其中\(\operatorname......
  • C语言-猜数游戏
    整理文件发现以前写的C语言猜数游戏1-效果演示2-程序#include<stdio.h>#include<stdlib.h>#include<time.h>intmain(){ srand(time(0)); intnumber=rand......
  • drf
    今日内容概要1.反序列化类校验部分源码解析2.断言3.drf请求4.drf响应5.视图组件和两个视图基类6.基于GenericAPIView+5个视图扩展类1.反序列化类校验部分源码解析......
  • 基于AD Event日志监测基于资源的约束委派攻击
    01、简介在获取到域控权限后,可以对krbtgt用户设置委派属性,以实现维持权限的目的。02、利用方式 (1)设置属性值并查询Set-ADUserkrbtgt-PrincipalsAllowedToDeleg......
  • golang context上下文值传递与控制
    1.Context详解在Go语言中context包允许传递一个“context”到程序中。Context如超时或截止日期(deadline)或通道,来指示停止运行和返回。例如,如果正在执行一个web......
  • 力扣700 二叉搜索树中的搜索
    题目:给定二叉搜索树(BST)的根节点root和一个整数值val。你需要在BST中找到节点值等于val的节点。返回以该节点为根的子树。如果节点不存在,则返回null。示例:......
  • 父类与子类的继承测试方法
    父类与子类的继承测试方法如果父类有值,直接输出父类属性,否则打印输出继承中子类的属性值packagecom.example.core.mydemo.extendtest;importorg.slf4j.Logger;impo......
  • DevOps与CICD面试题
    DevOps术语和定义1. 什么是DevOps答:用最简单的术语来说,DevOps是产品开发过程中开发(Dev)和运营(Ops)团队之间的灰色区域。DevOps是一种在产品开发周期中强调沟通,集成......