文章目录

  • 3.6.1 对象优先在Eden分配
  • 3.6.2 大对象直接进入老年代
  • 3.6.3 长期存活的对象分配到老年代
  • 3.6.4 动态对象年龄判断
  • 3.6.5 空间分配担保

3.6.1 对象优先在Eden分配

对象优先在Eden分配,当Eden没有足够空间进行分配时,虚拟机发起一次Minor GC;

  1. Minor GC发生在新生代GC;
  2. Major GC/full Gc发生在老年代的GC;
        出现了Major GC,则至少伴随一次的Minor GC,除了Parallel Scavenge收集器(直接Major GC);
  3. Major GC比Minor GC快10倍以上;
  4. FULL GC清理整个堆空间;

3.6.2 大对象直接进入老年代

大对象直接进入老年代;

大对象是指需要连续空间的JAVA对象,例如很长的字符串和数组;

(了解)虚拟机提供了一个-XX:PretenureSizeThreshold参数,令大于这个设置值的对象直接在老 年代分配。
注意  PretenureSizeThreshold参数只对Serial和ParNew两款收集器有效,Parallel Scavenge收集器不 认识这个参数,Parallel Scavenge收集器一般并不需要设置


3.6.3 长期存活的对象分配到老年代

    每个对象都有一个对象年龄计数器(Age),如果新出生的对象 经过Minor GC后任然存活,并且能被surivior容纳容纳,则会被移动到 surivior中,并且设定Age=1;
对象在surivior中每熬过一次Minor GC,则Age+1;当对象的Age到一定程度,就会被移动到老年代中;

虚拟机默认对象年龄阀次数为15次,可通过-XX:MaxTenuringThreshold进行次数设置。


3.6.4 动态对象年龄判断

    虚拟机并不是永远地要求对象的年龄必须达到了MaxTenuringThreshold才能晋升到老年代,如果在Survivor空间中相同年龄的所有对象大小的 总和 大于Survivor空间的一半,年龄大于或者等于该年龄的对象直接可以进入老年代,无须等到MaxTenuringThreshold中要求的年龄。


3.6.5 空间分配担保

    开启了空间分配担保,如果老年代最大可用的连续空间小于新生代所有对象的总空间1,并且老年代最大可用连续空间大于历次晋升到老年代的对象的平均大小2,则会尝试一次有风险的Minor GC。

在发生Minor GC之前,虚拟机会检查老年代最大可用的连续空间是否大于新生代所有对象的总空间;  如果大于,则此次Minor GC是安全的。  如果小于,则虚拟机会查看HandlePromotionFailure设置值是否允许担保失败。如果HandlePromotionFailure=true,那么会继续检查老年代最大可用连续空间是否大于历次晋升到老年代的对象的平均大小;  如果大于,则尝试进行一次Minor GC,但这次Minor GC依然是有风险的;如果小于或者HandlePromotionFailure=false,则改为进行一次Full GC

  1. 如果没有开启空间分配担保,那么应该是直接full gc. ↩︎

  2. 也是直接full gc. ↩︎

java内存分配与回收策略、动态对象年龄判断、空间分配担保相关推荐

  1. 浅谈java内存分配和回收策略

    一.导论 java技术体系中所提到的内存自动化管理归根结底就是内存的分配与回收两个问题,之前已经和大家谈过java回收的相关知识,今天来和大家聊聊java对象的在内存中的分配.通俗的讲,对象的内存分配 ...

  2. java内存分配和回收策略

    一.导论 java技术体系中所提到的内存自动化管理归根结底就是内存的分配与回收两个问题,之前已经和大家谈过java回收的相关知识,今天来和大家聊聊java对象的在内存中的分配.通俗的讲,对象的内存分配 ...

  3. JVM的内存分配与回收策略实战——对象优先在Eden分配

    本文代码在测试时使用的垃圾收集器组合是Serial/Serial Old. 这里还需要介绍一些JVM的基本参数,本文中进行如下设置: -verbose gc 打印垃圾收集信息 -Xms20M 堆容量设 ...

  4. JVM:内存分配与回收策略?Full GC 的触发条件?StopTheWorld ?

    内存分配与回收策略 Minor GC 和 Full GC Minor GC:发生在新生代上,因为新生代对象存活时间很短,因此 Minor GC 会频繁执行,执行的速度一般也会比较快. Full GC: ...

  5. JVM3:实战:内存分配与回收策略

    实战:内存分配与回收策略 文章目录 实战:内存分配与回收策略 对象优先在Eden分配 大对象直接进入老年代 长期存活的对象将进入老年代 动态对象年龄判定 空间分配担保 对象优先在Eden分配 试分配三 ...

  6. JVM 优化实操 - 内存分配与回收策略

    JVM 体系难学的一个地方就是理论一大堆,却难以实践.今天就尝试着在本地实践一把,体会 JVM 内存分配和垃圾回收的过程,尽可能的能够通过本地实际操作感受一下之前学习到的一些理论知识,作为一名初学者, ...

  7. JAVA之JVM之内存分配与回收策略(二)

    前言 对象的内存分配,往大的方向上讲,就是在堆上分配,少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节决定于当前使用的是哪种垃圾收集器组合,当然还有虚拟机中与内存相关的参数 ...

  8. Java 虚拟机内存分配与回收策略

    垃圾收集器与内存分配策略参考目录: 1.判断 Java 对象实例是否死亡 2. Java 中的四种引用 3.垃圾收集算法 4. Java9 中的 GC 调优 5.内存分配与回收策略 一.对象优先在 E ...

  9. 深入理解Java虚拟机(第三弹)- JVM 内存分配与回收策略原理,从此告别 JVM 内存分配文盲

    点击上方 好好学java ,选择 星标 公众号 重磅资讯.干货,第一时间送达 今日推荐:打卡活动第二期来啦,100% 能获得奖品个人原创+1博客:点击前往,查看更多 虚拟机系列文章 深入理解 Java ...

  10. JVM之内存分配与回收策略

    JVM之内存分配与回收策略 来源 https://www.cnblogs.com/xiaoxi/p/6557473.html JVM分代垃圾回收策略的基础概念 来源 https://www.cnblo ...

最新文章

  1. 如何用Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)(转)...
  2. 使用jOOQ DSL
  3. java基础 最重要的部分_Java基础(1)最基础的部分
  4. Javascript中document.execCommand()的用法
  5. shell命令的退出状态码(exit status)
  6. DVWA教程(一) —— Low级别
  7. 新型城镇化提质扩容 打造民村智慧城市
  8. 计算机学情问卷调查报告,学情调查报告及调查问卷(共9篇).docx
  9. Meta-HAR: Federated Representation Learning for Human Activity Recognition
  10. EMW3162 AT固件的使用【2】
  11. html5 css3制作柱形图,一步一步教你实现纯CSS的柱形图
  12. 深入浅出学习Linux(基础知识一)
  13. 叠氮PEG6基团N3-PEG6-alcohol,86770-69-6
  14. android手机怎么上卡,安卓手机卡慢怎么办 安卓手机卡慢解决方案【详解】
  15. Canvas入门教学(3)图片与文字的绘制
  16. oracle 创建自增序列
  17. 不同类型的 BPM 软件与客户
  18. 优先使用TimeUnit类中的sleep()(转自 ImportNew - 刘志军 翻译自 javarevisited)
  19. 洛谷-P1577-切绳子
  20. windows 7 共享文件夹

热门文章

  1. python pip常用指令(install,list,freeze,show,help)建议保存
  2. 已经编译好的OpenCV4.5.1----win10(cuda10.0 cudnn7.6.5)
  3. html图表实现,用 Flotr2 实现的 HTML5 图表
  4. 实战 Kaggle 比赛:狗的品种识别(ImageNet Dogs) 动手学深度学习v2 pytorch
  5. 机器学习- 吴恩达Andrew Ng - week3-3 Multiclass Classification
  6. 极客大学架构师训练营 网络通信协议 非阻塞网络I/O NIO 数据库架构原理 第16课 听课总结
  7. 2021-09-02编写一个 SQL 查询,获取 Employee 表中第二高的薪水(Salary) 。
  8. 用python写WordCount的MapReduce代码
  9. zookeeper使用问题汇总
  10. 高数复习:极限与连续,一元函数微分学,一元函数积分学,多元函数微分学以及微分方程(思维导图版知识点总结)