美文网首页
《深入理解java虚拟机》--对象分配策略

《深入理解java虚拟机》--对象分配策略

作者: whupenger | 来源:发表于2019-07-18 23:53 被阅读0次

对象的内存分配,主要分配在新生代的Eden区,如果启用了本地线程分配缓存(TLAB),则优先在TLAB上分配;少数情况会在老年代中分配。具体分配细节取决于当前使用哪种垃圾收集器组合,已经虚拟机中与内存相关参数的配置。

Minor GC 和 Full GC

Minor GC
指发生在新生代的垃圾回收动作,因为新生代的对象大多具备朝生夕灭的特性,所以Minor GC特别频繁,一般回收速度也比较快
Full GC:也叫Major GC
指发生在老年代的垃圾收集动作,出现了Full GC,至少出现一次Minor GC(但并非绝对,在Parallel Scavenge收集器的收集策略里就有直接进行Major GC的策略选择过程)。Major GC的速度一般比Minor GC慢10倍以上

分配策略

  • 对象优先在Eden区分配

    大多数情况下,对象在新生代的Eden区分配,如果Eden区没有足够的内存空间,虚拟机会发起一次Minor GC

  • 大对象直接进入老年代

    所谓的大对象,指的是需要大量连续内存空间的java对象,比如很长的字符串和数组,虚拟机可以设置-XX:PretenureSizeThreshold参数,令大于这个参数的对象直接在老年代分配

  • 长期存活的对象将进入老年代

    在Eden区的对象,每熬过一次Minor GC,它的年龄数就加一,当它的年龄数到达一定值时(默认15),就会晋升到老年代中,虚拟机可以通过设置-XX:MaxTenuringThreshold参数,决定年龄阈值

  • 动态年龄判断

    如果在Survivor区的相同年龄所有对象的大小之和大于Survivor空间的一半,年龄大于或等于该年龄的对象就直接进入老年代,无需等待到MaxTenuringThreshold中要求的年龄

  • 分配担保

    在发生Minor GC之前,虚拟机会检查老年代最大可用的连续空间是否大于新生代所有的对象空间,如果这个条件成立,那么Minor GC是确保安全的;如果不成立,虚拟机会查看HandlePromotionFailure设置值是否允许担保失败,如果允许,那么会继续检查老年代最大可利用的连续空间是否大于历次晋升到老年代对象的平均大小,如果大于,将尝试进行一次Minor GC,尽管该次GC会有风险;如果小于或者HandlePromotionFailure不允许冒险,那这时需要进行一次Full GC

相关文章

  • 从JVM到GC的学习脑图

    参考了《深入理解JAVA虚拟机》的第三章 垃圾收集器与内存分配策略 java对象

  • FAQ-GC

    什么时候会发生 GC深入理解 Java 虚拟机 3.5 内存分配与回收策略大多数情况下,对象在新生代 Eden 区...

  • 《深入理解java虚拟机》--对象分配策略

    对象的内存分配,主要分配在新生代的Eden区,如果启用了本地线程分配缓存(TLAB),则优先在TLAB上分配;少数...

  • HotSpot虚拟机对象

    以下是HotSpot虚拟机在Java堆中对象的分配、布局、访问过程。(主要来源于深入理解java虚拟机第二版以及自...

  • Java内存区域与内存溢出异常

      《深入理解Java虚拟机》第2章读书笔记与实验记录。 1、对象创建内存分配方式 指针碰撞: Java堆内存绝对...

  • 3.6 内存分配与回收策略

    参考 《深入理解Java虚拟机 JVM高级特性与最佳实践》 3.6节 1.对象优先在Eden分配 Minor GC...

  • JVM对象引用与内存分配策略

    我的CSDN博客同步发布:JVM对象引用与内存分配策略 前两天对《深入理解虚拟机》一书做了个总结:《JVM理解其实...

  • 32-实战3-JVM优化之JIT优化

    一、堆,是否是对象分配的唯一选择 在《深入理解Java虚拟机中》关于Java堆内存有如下描述:随着JIT编译期的发...

  • 内存分配与回收策略

    声明:此篇文章是读《深入理解JAVA虚拟机》的笔记 对象优先在Eden分配  大多数情况下,对象在新生代Eden区...

  • 深入理解Java虚拟机(二)之四种引用

    深入理解Java虚拟机系列文章 深入理解Java虚拟机(一)之内存模型 深入理解Java虚拟机(三)之垃圾收集 深...

网友评论

      本文标题:《深入理解java虚拟机》--对象分配策略

      本文链接:https://www.haomeiwen.com/subject/xfldlctx.html