HotSpot VM 内存堆的两个Servivor区

来源:互联网 发布:网络著作权权利有哪些 编辑:程序博客网 时间:2024/06/06 04:29


   JVM将堆分成了 二个大区  Young 和 Old 如下图:
   
     



   而Young 区又分为 Eden、Servivor1、Servivor2, 两个Survivor 区相对地作为为From 和 To 逻辑区域, 当Servivor1作为 From 时 , Servivor2 就作为 To, 反之亦然

   如下图:

   


   因此当Eden区满的时候 GC执行,这时会将 Eden 区和 From 区中还被引用的对象会被移到 To区 ,个别大对象和部分From对象在To已满的情况下会被放到Old区,如下图:

   



GC操作执行完之后 Eden和 From 区将会为空(无引用对象被回收,有引用对象被移到To和Old区) ,并且From 和 To在逻辑上的 概念调换 , From 概念上变成了To,To变成了From(如果Servior1 原来作为 From 区 ,现在Servior1 现在就作为 To 区),GC执行后结果如下图:

       

HotSpot VM 内存堆的两个Servivor区

原帖地址:http://www.iteye.com/topic/894148

原创粉丝点击