Java垃圾回收之Minor GC和Major GC(或称为Full GC)
2015-07-23 09:34
399 查看
最近在读周志明写的
新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Java 对象大多都具
备朝生夕灭的特性,所以 Minor GC 非常频繁,一般回收速度也比较快。
老年代 GC(Major GC / Full GC):指发生在老年代的 GC,出现了 Major GC,经常
会伴随至少一次的 Minor GC(但非绝对的,在 ParallelScavenge 收集器的收集策略里
就有直接进行 Major GC 的策略选择过程) 。MajorGC 的速度一般会比 Minor GC 慢 10
倍以上。
其中Monor GC如下图所示
虚拟机给每个对象定义了一个对象年龄(Age)计数器。如果对象在 Eden 出生并经过第一次 Minor GC 后仍然存活,并且能被 Survivor 容纳的话,将被移动到 Survivor 空间中,并将对象年龄设为 1。对象在 Survivor 区中每熬过一次 Minor GC,年龄就增加 1 岁,当它的年龄增加到一定程度(默认为 15 岁)时,就会被晋升到老年代中。对象晋升老年代的年龄阈值,可以通过参数 -XX:MaxTenuringThreshold 来设置。
深入理解Java虚拟机:JVM高级特性与最佳实践
对Minor GC和Major GC做点笔记新生代 GC(Minor GC):指发生在新生代的垃圾收集动作,因为 Java 对象大多都具
备朝生夕灭的特性,所以 Minor GC 非常频繁,一般回收速度也比较快。
老年代 GC(Major GC / Full GC):指发生在老年代的 GC,出现了 Major GC,经常
会伴随至少一次的 Minor GC(但非绝对的,在 ParallelScavenge 收集器的收集策略里
就有直接进行 Major GC 的策略选择过程) 。MajorGC 的速度一般会比 Minor GC 慢 10
倍以上。
其中Monor GC如下图所示
虚拟机给每个对象定义了一个对象年龄(Age)计数器。如果对象在 Eden 出生并经过第一次 Minor GC 后仍然存活,并且能被 Survivor 容纳的话,将被移动到 Survivor 空间中,并将对象年龄设为 1。对象在 Survivor 区中每熬过一次 Minor GC,年龄就增加 1 岁,当它的年龄增加到一定程度(默认为 15 岁)时,就会被晋升到老年代中。对象晋升老年代的年龄阈值,可以通过参数 -XX:MaxTenuringThreshold 来设置。
相关文章推荐
- Java多线程学习(一)---并发与多线程
- Java 线程同步 两种方法 代码
- java自定义队列并附带测试用例
- [leetcode-3]Longest Substring Without Repeating Characters(java)
- 关于idea运行项目时突然java文件报错
- Struts2学习笔记二 国际化
- javax.jms.Selectors
- java操作XML
- 杭电ACM2031java做法
- java遍历文件夹并将文件夹里的所有文件同样的复制到另一个文件中
- spring + jodd 实现文件上传
- Java正则表达式规则
- 如何获取Java项目的实际物理路径
- cxf+spring开发(一)--- 实现webservice简单输出实例
- Java 枚举变量解析
- java数据库 DBHelper
- Eclipse下buildpath和导入jar包问题
- MyEclipse 10, 2013, 2014 破解、注册码
- Eclipse上Logcat不显示日志的解决办法和注意事项
- java实现CRC16校验码生成