老年代分配

-XX:NewRatio
设置老年代与新生代的比例

-XX:NewRatio=老年代/新生代
尽可能将对象,预留在新生代
减少老年代的GC次数

package com.bjsxt.base001;public class Test02 {public static void main(String[] args) {byte[] b = null;// 连续向系统申请10MB空间for (int i = 0; i < 10; i++) {b = new byte[1 * 1024 * 1024];}}
}

程序分析
每次分配1M,循环10次
总共需要分配10M空间

测试

参数配置

-Xms20m -Xmx20m -XX:SurvivorRatio=2 -XX:+PrintGCDetails -XX:+UseSerialGC

老年代,比例为2

新生代,为6M多
老年代,为13M多
老年代/新生代,为2/1

JVM堆老年代分配比例相关推荐

  1. JVM 新生代老年代与GC

    Java堆可以分为新生代和老年代两个区,其中新生代又可以分为一个Eden区和两个Survivor区,两个Survivor区分别被命名为From和To以示区分,新生代和老年代的比例为1:2,它们共同组成 ...

  2. JVM新生代老年代GC分析

    新生代 复制算法 新生代特点 GC频繁.不稳定 每次清理内存,清理的比较多 每次回收耗时非常短 比如,有100个对象 可能90个需要清理,只需要复制其中的10个,到另一个内存空间 老年代 标记压缩法 ...

  3. 1、虚拟机内存管理、运行时数据区、线程共享区、Java堆、新生代、老年代、Eden区域分配、方法区、线程独占区、虚拟机栈

    1.Java虚拟机内存管理 1.1.运行时数据区[Runtime Data Area] 1.1.1.线程共享区 1.1.1.1.Java堆[heap] 1.1.1.1.1.新生代.老年代.Eden区域 ...

  4. jvm深入理解:内存分配与回收策略(优先在Eden分配、大对象直接进入老年代、长期存活的对象将进入老年代、动态对象年龄判定、空间分配担保)

    出入:深入理解Java虚拟机:JVM高级特性与最佳实践(第3版) Java技术体系的自动内存管理,最根本的目标是自动化地解决两个问题:自动给对象分配内存以及自动回收分配给对象的内存. 象的内存分配,从 ...

  5. JVM笔记-13运行时数据区-堆(OOM、年轻代老年代)

    学习JVM的一点简单笔记,宋红康老师jvm讲的很好,感谢. 尚硅谷JVM全套教程,百万播放,全网巅峰(宋红康详解java虚拟机) OOM 异常是什么? 堆空间溢出,存放数据大于堆空间大小. packa ...

  6. Java架构学习(十二)java内存结构新生代老年代JVM参数调优堆内存参数配置解决堆栈溢出

    JVM参数调优与垃圾回收机制 一.java内存结构 Java内存模型:是多线程里面的,jmm与线程可见性有关 Java内存结构:是JVM虚拟机存储空间. Java内存结构图 Java内存机构分为:方法 ...

  7. jvm对象从新生代到老年代_JVM内存管理、JVM垃圾回收机制、新生代、老年代以及永久代...

    内存模型 JVM运行时数据区由程序计数器.堆.虚拟机栈.本地方法栈.方法区部分组成,结构图如下所示. JVM内存结构由程序计数器.堆.栈.本地方法栈.方法区等部分组成,结构图如下所示: 1)程序计数器 ...

  8. JVM内存中的年轻代,老年代

    引言 对于大多数Java应用来说,Java Heap(Java堆)是JVM管理的内存中较大的一块,而且Java Heap是被所有线程共享的一块内存区域,于虚拟机启动时创建. 而Java堆的唯一目的就是 ...

  9. 大话Java堆的分区Eden、From Survivor、To Survivor、老年代

    Java虚拟机运行时数据区一般分为:程序计数器.Java虚拟机栈.本地方法栈.Java堆.方法区. 在<Java虚拟机规范>中对Java堆是这样描述的:"所有的对象实例以及数组都 ...

最新文章

  1. 国内少儿眼中的编程:“Coding即是代码”?
  2. 最大流学习笔记(1)
  3. Oracle Sql技巧 - Upsert, Multitable Insert, Undrop
  4. Java基础day24
  5. Hive hiveserver2 配置运行
  6. JSON.parse使用 之 Unexpected token o in JSON at position 1 报错原因
  7. 操作系统(八)进程管理——进程同步
  8. 系统调用----sandir
  9. flask-sqlalchemy Multiple Databases
  10. VB.NET工作笔记004---查看电脑已经安装了哪些COM组件,可以用个OleViewer.zip
  11. 【转】一分钟读懂互联网广告竞价策略GFP+GSP+VCG
  12. C语言第五次作业--数据类型
  13. linux卸载jdk权限不够,linux中卸载jdk,一个简单有关问题整了一上午
  14. Tools_Procexp找文件被哪个进程占用
  15. Error: Network Error
  16. 深度学习教程(15) | 自然语言处理与词嵌入(吴恩达·完整版)
  17. 页面布局中遇到菱形图片时的处理办法
  18. GIC spec之ITS和LPI中断1
  19. 基于Android平台的监控端和被监控端系统
  20. 记canvas画笔笔迹的多次优化过程

热门文章

  1. Sersync实现触发式文件同步
  2. python读取文件的常用方法
  3. [转载]C#中MessageBox.Show用法以及VB.NET中MsgBox用法
  4. 设计新Xlator扩展GlusterFS[转]
  5. phpStorm打开提示 failed to create JVM 的解决的方法
  6. android双击返回键退出程序的实现
  7. OpenCV基本步骤(初步学习)
  8. Google App Engine平台下JDOQL查询报异常的问题解决方案
  9. 下载:Visual Studio 2012 RC候选版
  10. paho.mqtt.embedded-c-master c语言版本架构