最大的好处就是解决了碎片化。也就是说为什么一个Survivor区不行?第一部分中,我们知道了必须设置Survivor区。假设现在只有一个Survivor区,我们来模拟一下流程:

刚刚新建的对象在Eden中,一旦Eden满了,触发一次Minor GC,Eden中的存活对象就会被移动到Survivor区。这样继续循环下去,下一次Eden满了的时候,问题来了,此时进行Minor GC,Eden和Survivor各有一些存活对象,如果此时把Eden区的存活对象硬放到Survivor区,很明显这两部分对象所占有的内存是不连续的,也就导致了内存碎片化。

永远有一个Survivor space是空的,另一个非空的Survivor space无碎片。

为什么需要两个Survivor区?相关推荐

  1. 深入理解JVM——(三)为什么JVM新生代需要两个Survivor区

    经过了JVM区域的学习,我们知道在堆中新生代具有一个Eden区和两个Survivor区,这里就有疑问了,为什么需要Survivor区和为什么需要两个Survivor区?带着疑问我们思考一下. 一.为什 ...

  2. 年轻代为什么要设置两个Survivor区

    设置两个Survivor区最大的好处就是解决了碎片化. 为什么一个Survivor区不行?第一部分中,我们知道了必须设置Survivor区.假设现在只有一个survivor区,我们来模拟一下流程:  ...

  3. 为什么新生代内存需要有两个Survivor区

    在我的上一篇博客中,介绍了JVM堆内存的结构以及在堆中进行的GC机制,链接是浅谈JAVA GC机制与性能优化 那么,在JVM的新生代内存中,为什么除了Eden区,还要设置两个Survivor区? 1 ...

  4. JVM内存结构--新生代及新生代里的两个Survivor区(下一轮S0与S1交换角色,如此循环往复)、常见调优参数

    转自http://www.cnblogs.com/duanxz/p/6076662.html 一.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以, ...

  5. java eden s0 s1_JVM内存结构--新生代及新生代里的两个Survivor区(下一轮S0与S1交换角色,如此循环往复)、常见调优参数...

    一.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我 ...

  6. 新生代Eden与两个Survivor区的解释

    文章出处:http://ifeve.com/jvm-yong-generation/ 聊聊JVM的年轻代 1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分 ...

  7. 新生代Eden区、两个Survivor区及老年代的关系

    偶然想起JVM年轻代中Eden区和两个Survivor的比例,就想根据自己的理解和大家探讨一下为什么要配成8 :1 :1的比例. 一.JVM堆分代 1.JVM堆被分为了年轻代和老年代.年轻代的GC过程 ...

  8. java 新生代中的Eden与两个Survivor区详解

    1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候我 ...

  9. JVM(六)为什么新生代有两个Survivor分区?

    本文会使用排除法的手段,来讲解新生代的区域划分,从而让读者能够更清晰的理解分代回收器的原理,在开始之前我们先来整体认识一下分代收集器. 分代收集器会把内存空间分为:老生代和新生代两个区域,而新生代又会 ...

最新文章

  1. JavaWeb总结(六)—Session
  2. PHP获取重定向URL的几种方法
  3. Linux中的Interrupted system call错误
  4. Golang 交叉编译
  5. 自定义曲线_Qt编写的项目作品17-自定义曲线图柱状图
  6. 整合SQL Server 2012和2014
  7. C# 通用树形数据结构
  8. 《Web漏洞防护》读书笔记——第12章,CSRF跨站点请求伪造防护
  9. linux扫描后门工具,Linux下rootkit后门检测工具chkrootkit安装使用教程
  10. 【DIY】通达信DIY添加扫雷宝、地图和复盘(1)
  11. 基于数据报表处理系统(VUE+SSM+MySQL)
  12. [JZOJ3461] 小麦亩产一千八
  13. 如何检测文档里含有非英字符_知网检测是算字数还是字符
  14. 用html计算长方形的面积公式,长方形面积公式是什么
  15. 现代计算机专业版官网,现代计算机期刊_投稿邮箱_杂志_编辑部_审稿_投稿须知...
  16. Java实现医疗系统
  17. 在Android运行cocos Demo游戏
  18. SDN 交换机迁移1
  19. 微信公众号开发本地调试【内网穿透】
  20. [Android] 隐藏头顶状态栏

热门文章

  1. xcode 左侧导航栏 no finder results 问题的解决方法
  2. 最短路径问题的算法实现【转载】
  3. redis-Windows下安装与操作
  4. 2016.2.29(异常)
  5. Silverlight中如何实现上下标的显示
  6. ETL学习之四:SQL Server Integration Services入门
  7. SharePoint Server 2010 一步一步从入门到精通
  8. 【SpringBoot】在SpringBoot中使用Ehcache
  9. InetAddressSocket使用总结
  10. 快速复制数据库表中的数据SQL