Minor GC和Full GC触发条件总结
来源:互联网 发布:加密锁软件下载 编辑:程序博客网 时间:2024/06/05 16:49
Minor GC ,Full GC 触发条件
Minor GC触发条件:当Eden区满时,触发Minor GC。
Full GC触发条件:
(1)调用System.gc时,系统建议执行Full GC,但是不必然执行
(2)老年代空间不足
(3)方法去空间不足
(4)通过Minor GC后进入老年代的平均大小大于老年代的可用内存
(5)由Eden区、From Space区向To Space区复制时,对象大小大于To Space可用内存,则把该对象转存到老年代,且老年代的可用内存小于该对象大小
Java堆:所有线程共享。虚拟机启动时创建。存放对象实力和数组。所占内存最大。分为新生代(Young区),老年代(Old区)。新生代分Eden区,Servior区。Servior区又分为From space区和To Space区。Eden区和Servior区的内存比为8:1。 当扩展内存大于可用内存,抛OOM。
GC流程 ,对象如何晋升到老年代
对象优先在新生代区中分配,若没有足够空间,Minor GC; 大对象(需要大量连续内存空间)直接进入老年态;长期存活的对象进入老年态。如果对象在新生代出生并经过第一次MGC后仍然存活,年龄+1,若年龄超过一定限制(15),则被晋升到老年态。
- 【对象优先在Eden中分配,当Eden中没有足够的空间分配时会促发一次Minor GC。每次Minor GC结束后,Eden区会清空,因为它会把Eden中还依然存活的对象放到Survivor中,当Survivor中放不下时,则由分派担保进入老年代中。
- 大对象直接进入老年代中。-XX:+PretenuerSizeThreshold 控制”大对象的“的大小。即当创建的对象大于这个临界值时,则该对象直接进入老年代。
- 长期存活的对象将进入老年代。虚拟机对每个对象定义了一个对象年龄(Age)计数器。当年龄增加到一定的临界值时,就会晋升到老年代中,该临界值由参数:-XX:MaxTenuringThreshold来设置。如果对象在Eden出生并在第一次发生Minor GC时仍然存活,并且能够被Survivor中所容纳的话,则该对象会被移动到Survivor中,并且设Age=1;以后每经历一次Minor GC,该对象还存活的话会被移动到另一个Survivor区中,并且Age=Age+1。
- 动态对象年龄判定:如上所示,虚拟机并不总是要求对象的年龄必须达到MaxTenuringThreshold才能晋升到老年代,如果在Survivor区中相同年龄(设年龄为age)的对象的所有大小之和超过Survivor空间的一半,年龄大于或等于该年龄(age)的对象就可以直接进入老年代,无需等到MaxTenuringThreshold中要求的年龄。】
转自:
http://blog.csdn.net/yhyr_ycy/article/details/52566105
阅读全文
0 0
- Minor GC和Full GC触发条件总结
- GC详解及Minor GC和Full GC触发条件总结
- GC详解及Minor GC和Full GC触发条件总结
- GC详解及Minor GC和Full GC触发条件总结
- GC详解及Minor GC和Full GC触发条件总结
- GC详解及Minor GC和Full GC触发条件总结
- GC详解及Minor GC和Full GC触发条件总结
- Minor GC ,Full GC 触发条件
- Minor GC ,Full GC 触发条件
- Minor GC ,Full GC 触发条件
- 触发Full gc条件
- Full Gc触发条件
- minor gc和full gc
- Minor GC、Major GC和Full GC
- Major GC和Full GC的区别以及触发条件
- Full gc的触发条件
- JVM 触发Full gc条件
- full GC触发的条件
- Maven优雅的添加第三方Jar包
- Java 关键字和保留字 -- JAVA 基础
- CCF 201604-2 俄罗斯方块
- loj #2003. 「SDOI2017」新生舞会(分数规划+费用流)
- IOS Error code
- Minor GC和Full GC触发条件总结
- C++虚函数的实现机制
- MySQL Innodb引擎修改库名(rename schema name)
- ognl 取得request、session 的值
- Final关键字
- 多线程之互斥锁(synchronized关键字)
- Codeforces 276C Little Girl and Maximum Sum【贪心】
- 【Linux】Linux环境下Oracle SqlPlus中方向键问题的解决方法
- 23种设计模式之代理模式