Jvm--MinorGC过程
2024-09-08 16:20:56
第一次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 决定)。
最新文章
- IBM Power PC安装sysbench 执行mysql基准测试 --- sysbench安装
- 理解android.intent.action.MAIN 与 android.intent.category.LAUNCHER
- C#读写SQL Server数据库图片
- 解决:Unknown table engine 'InnoDB'
- VC 中 UpdateData() 函数的使用
- 1020: 部分A+B
- IOS UIActivityIndicatorView 等待指示器
- 转载Expression Tree揭秘
- Unity3d Shader开发(三)Pass(Pass Tags,Name,BindChannels )
- 1_使用Java文件的并发写
- c#SocketIO4NetClient访问node js
- iOS企业版APP分发上线流程和注意事项
- 浏览器兼容之Chrome浏览器: -webkit-text-size-adjust: none;
- 201521123049 《JAVA程序设计》 第5周学习总结
- proxy.go 源码阅读
- react native 中实现个别页面禁止截屏
- php获取两个时间戳之间相隔多少天多少小时多少分多少秒
- solr4.7配置(ik-analyzer)
- Android帧布局<;TabHost>;标签
- Vivado下生成及烧写MCS文件