【JVM】JVM中的分代回收

文章目录

分代收集算法

什么是分代

在java8时,堆被分为了两份: 新生代和老年代【1:2】

其中:

对于新生代 ,内部又被分为了三个区域。
伊甸园区Eden,新生的对象都分配到这里
幸存者区survivor(分成from和to)

Eden区,from区,to区【8:1:1】

分代收集算法-工作机制

创建的对象,都会先分配到eden区

当伊甸园内存不足,标记伊甸园from(现阶段没有)的存活对象

将存活对象采用复制算法复制到 to 中,复制完毕后,伊甸园和 from 内存都得到释放

经过一段时间后伊甸园的内存又出现不足,标记eden区域to区存活的对象,将存活的对象复制到from区

当幸存区对象熬过几次回收(最多15次),晋升到老年代幸存区内存不足大对象会导致提前晋升

MinorGC、 Mixed GC 、 FullGC的区别是什么

Minor GC(新生代GC)、Mixed GC(混合GC)和Full GC(完全GC)是垃圾回收过程中的三个不同阶段。它们在触发条件执行范围影响范围上存在一些区别。

Minor GC主要针对新生代进行垃圾回收,
Mixed GC是对新生代和部分老年代的垃圾回收,
Full GC则是对整个堆内存进行垃圾回收。

随着垃圾回收的范围扩大停顿时间对应用程序影响也会增加。

相关推荐
qq_4135020212 小时前
如何创建CDB公共用户_C##前缀强制规则与CONTAINER=ALL
jvm·数据库·python
yexuhgu12 小时前
CSS如何利用-checked实现纯CSS手风琴折叠_通过状态选择器控制区域高度
jvm·数据库·python
2301_7796224113 小时前
mysql如何通过主从备份实现读写分离_配置mysql架构模式
jvm·数据库·python
m0_7411733313 小时前
HTML5中WebSocket在弱网环境下的延迟抖动算法补偿
jvm·数据库·python
2401_8714928513 小时前
Pandas如何做时间差对齐_pd.merge_asof按最近的时间戳合并两表
jvm·数据库·python
2403_8832610914 小时前
如何用 nodeType 与 nodeName 准确判断当前节点的物理类型
jvm·数据库·python
qq_4135020215 小时前
如何利用 Block Tree 避免不必要的子组件重渲染?Vue3 编译黑科技
jvm·数据库·python
m0_6245785915 小时前
CSS定位如何实现多行文字垂直居中_通过绝对定位模拟表格
jvm·数据库·python
dfdfadffa15 小时前
mysql如何排查网络延迟引起的数据库连接问题_使用ping测试
jvm·数据库·python
2303_8212873815 小时前
JavaScript中Redux-Thunk处理异步Action的任务流
jvm·数据库·python