原创转载请注明出处:https://agilestyle.iteye.com/blog/2440026
Minor GC 清理年轻代
Minor GC指新生代GC,即发生在新生代(包括Eden区和Survivor区)的垃圾回收操作,当新生代无法为新生对象分配内存空间的时候,会触发Minor GC。因为新生代中大多数对象的生命周期都很短,所以发生Minor GC的频率很高,虽然它会触发stop-the-world,但是它的回收速度很快。
Major GC 清理老年代
Major GC清理Tenured区,用于回收老年代,出现Major GC通常会出现至少一次Minor GC。
Full GC 清理整个堆空间—包括年轻代、老年代、元空间
Full GC是针对整个新生代、老生代、元空间(metaspace,java8以上版本取代perm gen)的全局范围的GC。Full GC不等于Major GC,也不等于Minor GC+Major GC,发生Full GC需要看使用了什么垃圾收集器组合,才能解释是什么样的垃圾回收。
Note
不管什么GC,都会发送stop-the-world,区别是发⽣的时间长短。⽽这个时间跟垃圾收集器又有关系,Serial、PartNew、Parallel Scavenge收集器⽆论是串⾏还是并⾏,都会挂起⽤户线程,⽽CMS和G1在并发标记时,是不会挂起⽤户线程的,但其它时候⼀样会挂起⽤户线程,stop the world 的时间相对来说就⼩很多了。
Major GC 在很多参考资料中是等价于 Full GC的,我们也可以发现很多性能监测⼯具中只有Minor GC 和 Full GC。
⼀般情况下,⼀次Full GC将会对年轻代、⽼年代、元空间以及堆外内存进⾏垃圾回收。
触发Full GC的原因有很多:
- 当年轻代晋升到⽼年代的对象⼤⼩,并⽐⽬前⽼年代剩余的空间⼤⼩还要⼤时,会触发Full GC;
- 当⽼年代的空间使⽤率超过某阈值时,会触发Full GC;
- 当元空间不⾜时(JDK1.7永久代不⾜),也会触发Full GC;
- 当调⽤System.gc()也会安排⼀次Full GC。
Reference
https://plumbr.io/blog/garbage-collection/minor-gc-vs-major-gc-vs-full-gc
相关推荐
Major GC:也叫Full GC,年老代垃圾回收 年轻代和年老代的GC策略是不一样的,年轻代一般采用的是复制算法。 Minor GC和Major GC的发生时机 Minor GC发生Eden区域被占满时。第一次触发gc时,Eden存活的...
用于分析 java gc日志文件。根据日志中的CMS GC统计信息可得到Full GC(也可以理解为Major GC)以及Minor GC相关数据
GC分为两种: Minor GC、Full GC(也叫做Major GC). Minor GC(简称GC) Minor GC是发生在新生代中的垃圾收集动作, 所采用的是复制算法。 GC一般为堆空间某个区发生了垃圾回收, 新生代(Young)几乎是所有java对象...
Unsupported major.minor version 51.0
一次完整的JVM GC的流程分析,描述了Full GC的原因入口以及Minor GC
GChisto是一款专业分析gc日志的工具,可以通过gc日志来分析:Minor GC、full gc的时间、频率等等,通过列表、报表、图表等不同的形式来反应gc的情况。虽然界面略显粗糙,但是功能还是不错的。 配置好本地的jdk环境...
Survivor区:当Eden区满之后,MinorGc机制会清理无引用状态的对象,并将GCRoot对象复制到Survivor区其中一个区内 GCRoot:就是指当前仍在直接引用的对象,GCRoot对象所引用的全部对象会形成一个GCRoot链 new对象 ...
JVM的垃圾回收机制JVM的垃圾回收机制1 什么是垃圾回收机制2 finalize方法作用3 新生代、老年代、永久代(方法区)的区别3.1 为什么要这样分代:3.2 Minor GC、Major GC、Full GC区别及触发条件4 如何判断对象是否存活...
本文主要介绍解决Unsupported major.minor version 51.0的问题,这里给大家整理了详细资料,有需要的小伙伴可以参考下
主要为大家详细介绍了启动Tomcat报错Unsupported major.minor version xxx的解决方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
主要介绍了关于Unsupported major.minor version 49.0的错误解决办法的相关资料,需要的朋友可以参考下
前端开源库-minor次要的语义版本控制工具。对版本应用major、minor和patch。
版本4j ============= 用于帮助比较major.minor.patch版本的库。 实现标准的Comparable和Comparator接口。用法稳定的: <dependency><groupId>...
使用椭圆参数major、minor、inc 和phase 将椭圆区域绘制为线条或补丁。 句法: 手柄 = ELLFIELD(X,Y,MAJOR,MINOR,INC,PHA,VARARGIN) varargin 提供了一些选项,请参阅帮助。 其中之一是可以为每个椭圆使用不同的 z...
JVM虚拟机的详细介绍1. 内存模型以及分区2....11. 简述 java 内存分配与回收策率以及 Minor GC 和Major GC 1. 内存模型以及分区 JVM 分为堆区和栈区,还有方法区,初始化的对象放在堆里面,引用放在栈里面,c
version.Info{Major:"1", Minor:"18", GitVersion:"v1.18.2", GitCommit:"52c56ce7a8272c798dbc29846288d7cd9fbae032", GitTreeState:"clean", BuildDate:"2020-04-16T11:56:40Z", GoVersion:"go1.13.9", Compiler:...
MINOR
文章目录1. 内存模型以及分区,需要详细...8. Minor GC 与 Full GC 分别在什么时候发生?9. 几种常用的内存调试工具:jmap、jstack、jconsole、jhat10. 类加载的几个过程:11.JVM 内存分哪几个区,每个区的作用是什么?
major minor API serial for Linux v2.13.6.