GC 的混乱之处

简介: 1.两个survivor的名字 在gclog中,from space永远指向不为空的那一块survivor space,也就是说时而s0,时而s1。那直接用s0 和 s1好了,还发明新名词干嘛? 图1-1  gclog截图 在下图中,可以清楚地看到,minorGC时,s1+eden区域被清空,活着的对象被复制到s0中。 图1-2 jstat -gcutil截图 2.G

1.两个survivor的名字

在gclog中,from space永远指向不为空的那一块survivor space,也就是说时而s0,时而s1。那直接用s0 和 s1好了,还发明新名词干嘛?


图1-1  gclog截图


在下图中,可以清楚地看到,minorGC时,s1+eden区域被清空,活着的对象被复制到s0中。


图1-2 jstat -gcutil截图

2.GC概念

minorGC 应该跟 YoungGC是一个概念吧,为什么要有两个名字? major GC跟full gc又是什么呢?

在gc.log中,明明显示:
{Heap before GC invocations=71 (full 2):
表示full GC进行了两次。为什么同一时刻在jstat gcutil中,显示四次呢?
  S0     S1     E      O      P     YGC     YGCT    FGC    FGCT     GCT   
 16.96   0.00  86.74  77.96  72.15     74    5.858     4    2.369    8.227

3. 各空间的名字

不同的垃圾回收器对各个空间的称呼也不一样,比如永久代,有的叫Perm Space,有的叫 Metaspace。。。


目录
相关文章
|
4月前
|
Java
jvm复习,深入理解java虚拟机一:运行时数据区域
这篇文章深入探讨了Java虚拟机的运行时数据区域,包括程序计数器、Java虚拟机栈、本地方法栈、Java堆、方法区、元空间和运行时常量池,并讨论了它们的作用、特点以及与垃圾回收的关系。
81 19
jvm复习,深入理解java虚拟机一:运行时数据区域
|
4月前
|
存储 算法 Java
【JVM】垃圾释放方式:标记-清除、复制算法、标记-整理、分代回收
【JVM】垃圾释放方式:标记-清除、复制算法、标记-整理、分代回收
95 2
|
9月前
|
存储 Java
StringTable垃圾回收跟踪案例
StringTable垃圾回收跟踪案例
47 0
|
9月前
|
存储 缓存 算法
深度解析JVM世界:垃圾判断和垃圾回收算法
深度解析JVM世界:垃圾判断和垃圾回收算法
|
算法 安全 Java
JVM学习日志(十一) 对象进入老年代的情况 及 空间担保机制
对象进入老年代的情况 及 空间担保机制 简述
435 0
JVM学习日志(十一) 对象进入老年代的情况 及 空间担保机制
|
编译器 程序员 Go
Go中逃逸现象, 变量“何时栈?何时堆?”
Go中逃逸现象, 变量“何时栈?何时堆?”
栈的压入、弹出序列(中等难度)
栈的压入、弹出序列(中等难度)
92 0
栈的压入、弹出序列(中等难度)
|
算法 Java 调度
【可达性分析、强软弱虚引用、gc的过程中对象是否能回收、三色标记、跨代引用】
【可达性分析、强软弱虚引用、gc的过程中对象是否能回收、三色标记、跨代引用】
146 0
|
存储 安全 Java
JVM详解之:汇编角度理解本地变量的生命周期
JVM详解之:汇编角度理解本地变量的生命周期
JVM详解之:汇编角度理解本地变量的生命周期
|
存储 算法 Java
JVM05_堆的概述、内存结构、复制算法、Minor|Major|Full GC、私有区域TLAB、对象分配、参数总结、逃逸分析、栈上分配、锁消除、标量替换(一)
①. 堆的概述(共享|垃圾回收) ②. 堆的内存结构 ③. 堆空间大小的设置 -Xms -Xmx ④. 新生代与老年代参数设置 NewRation SurvivorRatio
156 0
JVM05_堆的概述、内存结构、复制算法、Minor|Major|Full GC、私有区域TLAB、对象分配、参数总结、逃逸分析、栈上分配、锁消除、标量替换(一)