笔记--内存分配与回收策略
来源:互联网 发布:flush软件 编辑:程序博客网 时间:2024/04/28 18:56
1 对象优先在Eden区分配
当Eden区没有足够的空间进行分配时,虚拟机将会发起一次Minor GC
2 大对象直接进入老年代
虚拟机提供一个-XX:PretenureSizeThreshold参数,令大于这个设置值的对象直接在老年代分配,避免在Eden区及两个Survivor区之间发生大量的内存复制
3 长期存活对象将进入老年代
虚拟机对每一个对象定义了一个年龄计数器,对象每熬过一次Minor GC,相对应的年龄就会增加一岁,当年龄增加到一定岁数时,就将会晋升到老年代中,默认为十五岁。年龄阈值可以通过参数-XX:MaxTenuringThreshold设置
4 动态对象年龄判断
如果在Survivor空间中相同年龄所有对象大小的总和大于Survivor空间的一半,那么年龄大于或等于该年龄的对象就可以直接进入老年代
5 空间担保分配
在发生Minor GC 之前,虚拟机会先检查老年代最大可用的连续空间是否大于新生代所有对象的总和,如果这个条件成立,那么Minor GC 就是安全的,否则,虚拟机机会查看HandlePromotionFailure设置值是否允许担保失败。如果允许,那么会继续检查老年代最大可用的连续空间是否大于历次晋升到老年代对象的平均大小,如果大于就会再尝试一次Minor GC ,尽管它是有风险的。如果小于,或者上述设置值不允许失败,那这时也要改为进行一次Full GC
阅读全文
0 0
- 笔记--内存分配与回收策略
- 内存分配与回收策略
- 内存分配与回收策略
- 内存分配与回收策略
- 内存分配与回收策略
- 内存分配与回收策略
- 内存分配与回收策略
- 内存分配与回收策略
- 内存分配与回收策略
- 内存分配与回收策略
- 内存分配策略与回收策略
- 深入理解Java虚拟机笔记---内存分配与回收策略
- JVM笔记(四)内存分配与回收策略
- 深入理解Java虚拟机笔记---内存分配与回收策略
- JVM学习笔记(4)-内存分配与回收策略
- JVM学习笔记-内存分配与回收策略
- Java内存分配与回收策略
- 3.6 内存分配与回收策略
- O
- 3.Springmvc的文件上传
- Git
- git submodule update安装/升级模块的github配置
- 基于springmvc的文件上传与下载
- 笔记--内存分配与回收策略
- 【NY8】一种排序sort+结构体
- 其他类通过接口访问内部类成员(JAVA的保护)
- 排序算法(八):基数排序
- php 访问数据库的三种方式
- CF_D. Choosing Capital for Treeland_树形DP
- HTML DOM
- leetcode--645--Set Mismatch
- 使用canvas绘制动态时钟