先把JVM内存初始分配为600M,最大也为600M,一下测试都在此基础运行,命令如下,测试复制添加即可

-Xms600m -Xmx600m

我们直接运行程序,用java/bin/javaVisual默认工具查看内存使用情况,如果第一次使用需要添加GC插件,不然没这个选项

参数中添加下面

-XX:SurvivorRatio=8

再看下

这时才是真正的8:1:1

相关代码

public static void main(String[] args) throws Exception {long l = Runtime.getRuntime().totalMemory() / 1024 / 1024;System.out.println(l + "M");long l1 = Runtime.getRuntime().maxMemory() / 1024 / 1024;System.out.println(l1 + "M");Thread.sleep(100000000000000000L);
}

关于运行后有一部分没法用的情况,输出参数:

这个是因为新生代采用的是复制算法,复制算法是吧空间一分为二,相对来说有一部分永远无法使用,故这里没加上这个空间。

关于新生代内存伊甸园区和幸存者区比例问题相关推荐

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

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

  2. JVM区域各个区的讲解 Eden Space(伊甸园)、Survivor Space(幸存者区)、Tenured Gen(老年代-养老区)...

    JVM区域总体分两类,heap区和非heap区.heap区又分:Eden Space(伊甸园).Survivor Space(幸存者区).Tenured Gen(老年代-养老区). 非heap区又分: ...

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

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

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

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

  5. JVM内存新生代Eden区和Survivor区的比例是多少?

    JVM内存新生代Eden区和Survivor区的默认比例是8:1:1.其中,Eden区占用80%,Survivor区占用20%,并且划分为大小相同的两部分,这样划分的原因是为了解决内存碎片的问题.

  6. JVM入门(位置、体系结构、类加载器、双亲委派机制、沙箱安全机制、Native、PC寄存器、方法区、堆(新生区{伊甸园区、幸存区}、养老区、永久区)、OOM、GC算法、JMM)

    目录 一.JVM的位置 二.JVM的体系结构 三.类加载器 1.类加载器举例 2. JVM中提供了三层的ClassLoader 3. 双亲委派机制(重要) 3.1 工作原理 3.2.优点 四.沙箱安全 ...

  7. 36.JVM内存分哪几个区,每个区的作用是什么、如和判断一个对象是否存活、java垃圾回收机制、垃圾收集的方法有哪些、java类加载过程、类加载机制、双亲委派、Minor GC和Major GC

    36.JVM内存分哪几个区,每个区的作用是什么? 37.如和判断一个对象是否存活?(或者GC对象的判定方法) 38.简述java垃圾回收机制? 39.java中垃圾收集的方法有哪些? 40.java类 ...

  8. jvm优化技巧,Java堆,old区,Eden区,s0和s1区,老年代,新生代

    这里写目录标题 jvm 说明 性能调优案例 jvm 说明 jvm既 Java Virtual Machine,既然是虚拟机,其必有存储空间,且不同的存储空间,存储特定的数据,如图所示: 虚拟机栈:存储 ...

  9. JVM内存模型——运行时数据区的特点和作用

    文章目录 前言 1程序计数器 2本地方法栈 3虚拟机栈 3.1局部变量表 3.2操作数栈 3.3动态连接 3.4返回地址 4方法区 5堆 5.1查看方法区跟堆大小 5.2新生代跟老年代 5.3什么时候 ...

最新文章

  1. python人脸识别毕业设计-Python基于Dlib的人脸识别系统的实现
  2. 活体检测很复杂?仅使用opencv就能实现!(附源码)
  3. spring处理方法返回值的类型
  4. mysql gtid 5.7_MySQL5.7之GTID复制
  5. 使用Google Weather API查询天气预报
  6. java课后习题_【整理】java私塾教程课后习题
  7. Windows远程桌面的使用(Remote Desktop Connection)
  8. android 蓝牙各种UUID(转载)
  9. iis mysql cpu_[译]通过IIS Request Filtering解决SQL Server CPU高的问题
  10. IntelJIdea 如何修改控制台字体大小和主题
  11. pku 2251 Dungeon Master
  12. yii mysql 操作_YII 数据库相关操作
  13. 【WPF】非UI线程操作UI
  14. Linux操作系统常用基本命令
  15. QQ音乐下载器、爬虫
  16. 【软技能】完全写作指南--演讲幻灯片
  17. 十四届全国大学生“恩智浦”杯智能汽车竞赛信标组总结(3)
  18. 我的Python心路历程 第十期 (10.10 股票实战可视化历史趋势)
  19. 大数据分析案例-对电信客户流失分析预警预测
  20. Ant Design学习——Mentions

热门文章

  1. uwsgi django nginx多站点 pyvenv virutalvenv python 3 django 2这些限制下,如何让uwsgi跑起来?...
  2. 港科夜闻|香港科大研究团队突破性发现罕见肿瘤细胞「间谍」,揭示不为人知的癌细胞...
  3. word或dword区别
  4. 【语音识别】基于BP神经网络0到10数字语音识别含Matlab源码
  5. java实现PDF文件批量加水印
  6. linux设备acpi表配置,linux ACPI 知识
  7. nRF52833-peripheral
  8. jquery的parent()方法
  9. 腾讯地图展示标记点位及自定义弹框,数据填充,右侧悬浮tab
  10. 什么是驱动程序 在计算机中有何用途,D驱动器上的Drivers文件夹有什么作用?可以删除吗?...