菜鸟教程JVM优化,看一篇就够了!
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优化,看一篇就够了!相关推荐
- 超详细的springBoot学习教程,springboot学习看这篇就够了
springBoot学习 https://docs.spring.io/spring-boot/docs/2.2.6.RELEASE/reference/html/index.html (官方文档) ...
- 前端SEO优化 看这篇就够了
转载 https://blog.csdn.net/yuyuking/article/details/89374794
- SEO优化看这篇就够啦
重要:内容,友链,外链,关键词搜索后点击量 我的学习记录 1-有收录才有排名,设置插件自动提交站点. 2-用户体验,与百度蜘蛛模拟用户体验,一般蜘蛛越多权重越高 3-优质内容,原创,标题和内容对应,文 ...
- python中tkinter模块窗口操作_Python GUI之tkinter窗口视窗教程大集合(看这篇就够了)...
本篇博文搬到个人博客:[洪卫の博客](https://sunhwee.com)上面去了,想要获得最佳阅读体验,欢迎前往 [https://sunhwee.com](洪卫の博客), 建议用电脑查看教程文 ...
- .NET Core实战项目之CMS 第二章 入门篇-快速入门ASP.NET Core看这篇就够了
本来这篇只是想简单介绍下ASP.NET Core MVC项目的(毕竟要照顾到很多新手朋友),但是转念一想不如来点猛的(考虑到急性子的朋友),让你通过本文的学习就能快速的入门ASP.NET Core.既 ...
- 【超全汇总】学习数据结构与算法,计算机基础知识,看这篇就够了【ZT帅地】2020-3-7
https://blog.csdn.net/m0_37907797/article/details/104029002 由于文章有点多,并且发的文章也不是一个系列一个系列发的,不过我的文章大部分都是围 ...
- 读懂 JVM 内存管理这篇就够了
读懂 JVM 内存管理这篇就够了 JVM 的内存结构 程序计数器 作用 概述 PC寄存器的常见问题 虚拟机栈 栈中可能出现的异常 栈的存储单位 栈运行原理 栈帧的内部结构 局部变量表 槽 Slot 操 ...
- React入门看这篇就够了
2019独角兽企业重金招聘Python工程师标准>>> 摘要: 很多值得了解的细节. 原文:React入门看这篇就够了 作者:Random Fundebug经授权转载,版权归原作者所 ...
- uiautomation遍历windows所有窗口_万字长文!滑动窗口看这篇就够了!
大家好,我是小浩.今天是小浩算法 "365刷题计划" 滑动窗口系列 - 整合篇.之前给大家讲解过一些滑动窗口的题目,但未作系统整理. 所以我就出了这个整合合集,整合工作中除了保留原 ...
最新文章
- js 操作vuex数据_Vuex 数据状态持久化如何处理?
- firefox4脚本执行顺序与jquery.globalEval
- .net数据库操作类2
- python 编写一个函数来验证输入的字符串是否是有效的 IPv4 或 IPv6 地址_产品 | 工信部发声IPv6即将部署,你的路由需要更换吗?...
- 关系型数据库 (数据库类型)
- python bool 转vc int_史上最全的 Python 3 类型转换指南
- python stderr 中文_【Python入门教程】 超详细讲解,1小时学会Python(不会来找我!)...
- 2018年 第九届 蓝桥杯省赛 C/C++ B 组
- 无法打开ONEDRIVE的解决方法【等待验证】
- 学编程c语言高考能加分吗,编程已列入中高考,孩子升学加分的机会你抓住了么?...
- FPGA学习笔记——分频电路设计
- 蚂蚁金服服务注册中心 SOFARegistry 解析
- 【报表开发】:BI---新视界---请休假个人报表
- NO.4【婳骨】の小房子程序
- JavaScript 加密库 crypto-js
- 【星辰傀儡线·命运环·卷二 尘埃】 7 金团
- 2021年中国汽车电商行业发展回顾及未来发展趋势分析:随着汽车销量的增长,已成为汽车销售不可阻挡的趋势 [图]
- IP地址、子网掩码详解
- 飞思创FS-HCore-E600N(移远E600N核心板)使用micropython二次开发经历
- 商务计算机比赛,湖南商务职业技术学院获全国职业院校技能大赛“计算机网络应用”赛项二等奖...