yong gc 的触发时机

当要分配新对象,但新生代edent区不足

将edent区和suvivor区的存活对象拷贝到另外一个survivor区

1)内存充足则,没事

2)如果内存不足,则存活对象直接进入老年代

full gc的触发时机

当对象要进入老年代时机:

1)对象年龄达到15岁后则进入老年代

2)动态年龄判断

3)分配新对象时,大对象直接进入老年代

4)空间担保机制,yong gc后存活对象无法放入survivor区,则会进入老年代

触发full gc时机这是以上情况对象进入老年代,老年代内存使用率超过了92%(所以也是内存不足),也要直接触发Old GC

当然这个比例是可以通过参数调整的

所谓的JVM优化,就是尽可能避免对象进入老年代,上面的4点,

1)尤其是第4点,避免存活对象无法进入suvivor区,适当调整suvivor区大小让存活对象只留在这里;

2)在第1)优化后,suvivor存活的对象可能在下次进行GC时候,还是存活着,那就可能会触发大年龄;

尽量进行下次GC的时候,让之前suvivor区存活的对象也被这次回收掉,不然可能会引起suvivor区存活的对象累计大小不断叠加,最终又会引起suvivor区不足让存活对象进入老年代

2)如果调整suvivor区不管怎么调整,还是无法让存活对象进入survivor区,只能加内存了

空间担保机制

每次young gc前都会进行检查,老年代空间的可用空间大小是否大于新生代所有对象的的大小

1)大于,则直接可以yong gc,因为毕竟即使所有对象都存活,直接进入老年代也能放进去

2)否,则看是否开启空间担保机制

1)不开启,直接出发Full GC

2)开启,检测老年代可用空间大小是否大于每次yong gc后进入老年代的对象的平均大小

1)否,则直接出发full gc

2)大于,则直接进行young gc

1)yong gc后存活对象小于survivor区,存活对象就进入survivor区

2)yong gc后存活对象大于survivor区,同时又小于老年代可用大小,则进入老年代

3)yong gc后存活对象大于survivor区,同时又大于老年代可用大小,则出发full gc

1)此时yong gc时候,存活对象会先留在新生代,等老年代执行full gc后腾出空间后,再把存活对象放进老年代

2)如果full gc后,老年代空间还是无法放入young gc后的存活对象,则会OOM内存溢出

菜鸟教程JVM优化,看一篇就够了!相关推荐

  1. 超详细的springBoot学习教程,springboot学习看这篇就够了

    springBoot学习 https://docs.spring.io/spring-boot/docs/2.2.6.RELEASE/reference/html/index.html (官方文档) ...

  2. 前端SEO优化 看这篇就够了

    转载 https://blog.csdn.net/yuyuking/article/details/89374794

  3. SEO优化看这篇就够啦

    重要:内容,友链,外链,关键词搜索后点击量 我的学习记录 1-有收录才有排名,设置插件自动提交站点. 2-用户体验,与百度蜘蛛模拟用户体验,一般蜘蛛越多权重越高 3-优质内容,原创,标题和内容对应,文 ...

  4. python中tkinter模块窗口操作_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)...

    本篇博文搬到个人博客:[洪卫の博客](https://sunhwee.com)上面去了,想要获得最佳阅读体验,欢迎前往 [https://sunhwee.com](洪卫の博客), 建议用电脑查看教程文 ...

  5. .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了

    本来这篇只是想简单介绍下ASP.NET Core MVC项目的(毕竟要照顾到很多新手朋友),但是转念一想不如来点猛的(考虑到急性子的朋友),让你通过本文的学习就能快速的入门ASP.NET Core.既 ...

  6. 【超全汇总】学习数据结构与算法,计算机基础知识,看这篇就够了【ZT帅地】2020-3-7

    https://blog.csdn.net/m0_37907797/article/details/104029002 由于文章有点多,并且发的文章也不是一个系列一个系列发的,不过我的文章大部分都是围 ...

  7. 读懂 JVM 内存管理这篇就够了

    读懂 JVM 内存管理这篇就够了 JVM 的内存结构 程序计数器 作用 概述 PC寄存器的常见问题 虚拟机栈 栈中可能出现的异常 栈的存储单位 栈运行原理 栈帧的内部结构 局部变量表 槽 Slot 操 ...

  8. React入门看这篇就够了

    2019独角兽企业重金招聘Python工程师标准>>> 摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所 ...

  9. uiautomation遍历windows所有窗口_万字长文!滑动窗口看这篇就够了!

    大家好,我是小浩.今天是小浩算法 "365刷题计划" 滑动窗口系列 - 整合篇.之前给大家讲解过一些滑动窗口的题目,但未作系统整理. 所以我就出了这个整合合集,整合工作中除了保留原 ...

最新文章

  1. js 操作vuex数据_Vuex 数据状态持久化如何处理?
  2. firefox4脚本执行顺序与jquery.globalEval
  3. .net数据库操作类2
  4. python 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址_产品 | 工信部发声IPv6即将部署,你的路由需要更换吗?...
  5. 关系型数据库 (数据库类型)
  6. python bool 转vc int_史上最全的 Python 3 类型转换指南
  7. python stderr 中文_【Python入门教程】 超详细讲解,1小时学会Python(不会来找我!)...
  8. 2018年 第九届 蓝桥杯省赛 C/C++ B 组
  9. 无法打开ONEDRIVE的解决方法【等待验证】
  10. 学编程c语言高考能加分吗,编程已列入中高考,孩子升学加分的机会你抓住了么?...
  11. FPGA学习笔记——分频电路设计
  12. 蚂蚁金服服务注册中心 SOFARegistry 解析
  13. 【报表开发】:BI---新视界---请休假个人报表
  14. NO.4【婳骨】の小房子程序
  15. JavaScript 加密库 crypto-js
  16. 【星辰傀儡线·命运环·卷二 尘埃】 7 金团
  17. 2021年中国汽车电商行业发展回顾及未来发展趋势分析:随着汽车销量的增长,已成为汽车销售不可阻挡的趋势 [图]
  18. IP地址、子网掩码详解
  19. 飞思创FS-HCore-E600N(移远E600N核心板)使用micropython二次开发经历
  20. 商务计算机比赛,湖南商务职业技术学院获全国职业院校技能大赛“计算机网络应用”赛项二等奖...

热门文章

  1. K_A19_002 基于STM32等单片机采集水位检测传感数据 串口与OLED0.96双显示
  2. R语言,导入XLSX的Excel数据 多sheet
  3. vue导出excel文件损坏
  4. FFS(快速文件系统)–Unix文件系统
  5. 推进企业使用正版软件工作部际联席会议第四次全体会议(2010)
  6. mt,sgd,gd含义
  7. 微信退款服务器系统失败怎么办,微信缴费失败怎么退款?能退回吗?
  8. 时间显示(模拟时钟)
  9. 不去摄影棚,不用PS三步快速证件照换底色最简单方式
  10. 在电脑上通过手机发短信