第8课: JVM的young Generation大小对gc性能的致命影响力内幕解密

编程入门 行业动态 更新时间:2024-10-04 23:32:58

第8课: JVM的young Generation大小对gc性能的致命影响力<a href=https://www.elefans.com/category/jswz/34/1770083.html style=内幕解密"/>

第8课: JVM的young Generation大小对gc性能的致命影响力内幕解密

内容:

    1.JVM Young Generation工作机制详解
    2.Young Generation对GC的性能的影响

一、VM Young Generation工作机制详解

    1.年轻代和年老代实现算法不同,年轻代GC是有空间的,释放已经占用的空间,年老代GC是没有空间了,是迫不得已,大部分的JVM对象生命周期都不是很长。
    2.整个Heap分为年轻代和年老代,之所以这么分,是GC性能考虑的。提升效率。年轻代进行GC的时候一般都会有新的空间的。年老代进行GC的时候,一般没有更多的空间了。年轻代的GC算法一般采用标记拷贝的算法。Eden中的对象会被移动到S区,这就是一个拷贝的过程。
    3.GC之前,对象是存在Eden和From区域中,GC后,会被拷贝到To区域。From中的对象,算法会考虑其年龄,到达一定阀值会被复制到Old Generation。如果没有到达次数,会被从From复制到To。复制完成后,从新生代的角度讲,To中保存的是有效的对象,Eden和From中剩下的都是无效的对象,这个时候就可以把所有的对象清空。
    4.Eden的内容复制到To,但是To这个时候已经满了,这个时候Eden的对象会被直接复制到Old Generation,From也会如此。对象直接进入Old Generation这种可能是存在的。当然这是不希望看到这种情况。
    5.拷贝完成后,From和To的名字会对调。对调之后,To和Eden是空的。
    6.Old Generation空间不足产生Full GC的三种情况:
        a)From中对象生命值达到阀值,进入Old Generation导致空间不足。
        b)To空间不足,大量的对象直接进入Old Generation导致空间不足。
        c)直接分配的对象是大对象,直接进入Old Generation导致空间不足。

更多推荐

第8课: JVM的young Generation大小对gc性能的致命影响力内幕解密

本文发布于:2024-02-19 13:38:05,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1764353.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:内幕   影响力   大小   性能   young

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!