jvm工作原理描述

jvm工作原理描述
1.对象在刚刚创建的时候.该对象是放在Eden区域的,
随着时间的流式,Eden区域对象会越来越多的时候,Eden区域的对象已经占满了整个空间的时候,会进行一次minorGC.

Eden进行minorGC的时候,将Eden区域中还在使用的对象放入survivor0中,survivor1此时当作备用,将Eden区域中没有使用的对象移除,腾出空间后,Eden又有空间可以存放对象了

随着时间的流式,Eden区域的对象又开始越来越多,直至占满整个空间,再次进行一次minorGC
此时的minorGC,就会将Eden与survivor0中还在使用的对象放入到survivor1当中,将Eden与survivor0中没有使用的对象进行移除,腾出空间

随着时间的流式Eden区域的对象越来越多,当Eden的对象占满整个空间的时候,进行一次minorGC
此时的minorGC,会将Eden与survivor1中还在使用的对象放入到survivor0中,再将没有使用的对象进行移除

重复着上述的步骤
当存活的对象越来越多,survivor区域装不下的时候,会将对象放入到老年代中
再次重复上述步骤直到老年代装不下对象的时候,就会进行Full GC.当进行FullGC的时候,时间相对比较长,短的可能就几分钟,长的可能就十几分钟.而且在Full GC 的时候, Jvm是暂停其它操作,优先GC的

如果spark在拉取shuffle数据的时候,出现失败,一般都是因为FullGC引起的