您当前的位置:首页 > 电脑百科 > 程序开发 > 编程百科

程序员由于对象太多!结果溢出了

时间:2022-01-31 11:31:43  来源:  作者:JavaEdge

最容易引发内存溢出的,就是系统创建出来的对象!

1 对象在Eden区分配

系统运行时,一直不停创建对象,然后大量对象会填满Eden。Eden满,就会触发一次YGC,然后存活对象进入S区:

程序员由于对象太多!结果溢出了

 

2 高并发场景导致YGC后,存活对象太多

高并发场景,导致YGC后很多请求还没处理完,存活对象太多,可能就在S区放不下,只能进入Old,Old很快就会满了:

程序员由于对象太多!结果溢出了

 

一旦Old放满,就会触发Full GC。

假设YGC后,有一批存活对象,S放不下,就等着要进入Old,然后Old也满,就得等Old进行CMS GC,必须回收掉一批对象,才能让年轻代里存活的一批对象进去。

但Old GC后,依然存活下很多对象,这时若年轻代还有一批对象等着进Old,可Old空间还是不足,咋办? 只能内存溢出!

所以这时,Old都已满,你还要往里面放东西,而且触发Full GC回收了Old还是没足够内存空间,你却还要放, 那只能给你个内存溢出!JVM崩溃。

3 何时发生堆内存溢出?

有限的内存中放了过多的对象,而且大多数都是存活的,此时即使GC过后还是大部分都存活,所以要继续放入更多对象已经不可能了,此时只能引发内存溢出。

发生内存溢出的主要场景:

  • 系统承载高并发请求,因请求量过大,导致大量对象都存活,所以要继续放入新对象,实在不行了,就会引发OOM
  • 系统有内存泄露,即莫名其妙弄了很多对象,结果对象都存活,没有及时取消对他们的引用,导致触发GC还是无法回收,也只能引发内存溢出

综上,一般引发OOM,要不然是系统负载过高,要不然就是有内存泄露。

4 总结

堆内存OOM的根本原因,即对象太多,且都是存活的,即使GC过后还是没有空间了,此时放不下新的对象,JVM只能选择崩溃!



Tags:对象   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
最容易引发内存溢出的,就是系统创建出来的对象!1 对象在Eden区分配系统运行时,一直不停创建对象,然后大量对象会填满Eden。Eden满,就会触发一次YGC,然后存活对象进入S区: 2 高并发...【详细内容】
2022-01-31  Tags: 对象  点击:(13)  评论:(0)  加入收藏
说明面向对象的三个基本特征是:封装、继承、多态。call函数:预定义的JavaScript方法,用来调用所有者对象作为参数的方法。上节内容:面向对象,类、对象、属性、方法,静态属性和方法...【详细内容】
2022-01-04  Tags: 对象  点击:(33)  评论:(0)  加入收藏
面向对象的特征之一封装 面向对象的特征之二继承 方法重写(override/overWrite) 方法的重载(overload)和重写(override)的区别: 面向对象特征之三:多态 Instanceof关键字...【详细内容】
2021-12-28  Tags: 对象  点击:(34)  评论:(0)  加入收藏
面向对象:Object Oriented Programming,简称OOP,即面向对象程序设计。类(Class)和对象(Object)类是用来描述具有相同属性和方法对象的集合。对象是类的具体实例。比如,学生都有...【详细内容】
2021-12-22  Tags: 对象  点击:(44)  评论:(0)  加入收藏
我们经常会在一些法治节目中看到一些人被骗婚骗色,有些人隐瞒自己的结婚事实,对涉世未深或社会经验不足的对象实施诈骗,以结婚为由,骗取钱财,很多人在没有了解地方底细的情况下,就...【详细内容】
2021-11-15  Tags: 对象  点击:(42)  评论:(0)  加入收藏
今天我们将尝试下花 1 分钟的时间简单地了解下什么是 JS 代理对象(proxies)?我们可以这样理解,JS 代理就相当于在对象的外层加了一层拦截,在拦截方法里我们可以自定义一些个性化...【详细内容】
2021-10-18  Tags: 对象  点击:(71)  评论:(0)  加入收藏
最近开发项目的时候需要用到对象的属性拷贝,以前也有用过一些复制框架,比如spring的 BeanUtils.copyProperties等方式,但总是不尽如人意,最近发现使用orika进行对象拷贝挺好用的...【详细内容】
2021-08-27  Tags: 对象  点击:(301)  评论:(0)  加入收藏
JavaBean处理工具类,包括 Beanutils、PropertyUtils、CollectionUtils、ConvertUtils。<dependency> <groupId>commons-beanutils</groupId> <artifactId>commons-bean...【详细内容】
2021-08-11  Tags: 对象  点击:(159)  评论:(0)  加入收藏
相比于高大上的各种Selenium进阶指南,个人认为夯实基础至关重要在Selenium测试框架的API中,主要分为三大类:1.对浏览器本身的相关操作2.对浏览器页面中,元素的定位操作3.对浏览...【详细内容】
2021-07-08  Tags: 对象  点击:(136)  评论:(0)  加入收藏
一、对象存储OSS阿里云对象存储OSS(Object Storage Service)具有丰富的安全防护能力,支持服务器端加密、客户端加密、防盗链白名单、细粒度权限管控、日志审计、合规保留策略(WO...【详细内容】
2021-06-24  Tags: 对象  点击:(122)  评论:(0)  加入收藏
▌简易百科推荐
图像阈值分割图像阈值分割,一种广泛应用的分割技术,利用图像中要提取的目标区域与其背景在灰度特性上的差异,把图像看作具有不同灰度级的两类区域(目标区域和背景区域)的组合,选取...【详细内容】
2022-02-07  IT小奋斗    Tags:阈值   点击:(5)  评论:(0)  加入收藏
写代码离不开调试,调试离不开断点。IDEA 对于断点的支持非常丰富。掌握这些技巧以后,可以大大的提升开发效率。是帮助程序员保住头发,远离 996 的秘密武器。 断点类型IDEA 支...【详细内容】
2022-02-04  刘水镜    Tags: IDEA   点击:(8)  评论:(0)  加入收藏
结论:当所需的精度由小数点右侧的位数决定时,decimal 类型是合适的。 此类数字通常用于财务应用程序、货币金额(例如 $1.00)、利率(例如 2.625%)等。 精确到只有一个小数用 decim...【详细内容】
2022-02-03  到底想咋样啊    Tags:Decimal   点击:(7)  评论:(0)  加入收藏
一、背景1.1、时间紧任务重在之前开发一套公司内部系统时一方面时间紧前期工作准备不充分,另一方面也在业务对接及编码工作的规范上做得不是很好导致了这套系统仅停留在能用...【详细内容】
2022-02-01  晓掌柜丶韶华    Tags:硬编码   点击:(12)  评论:(0)  加入收藏
最容易引发内存溢出的,就是系统创建出来的对象!1 对象在Eden区分配系统运行时,一直不停创建对象,然后大量对象会填满Eden。Eden满,就会触发一次YGC,然后存活对象进入S区: 2 高并发...【详细内容】
2022-01-31  JavaEdge    Tags:对象   点击:(13)  评论:(0)  加入收藏
本文是“2021 InfoQ 年度技术盘点与展望”系列文章之一,由直播内容整理而成,重点聚焦编程语言领域在 2022 年的核心趋势展望,希望能帮助你准确把握 2022 年编程语言领域的核心...【详细内容】
2022-01-29  InfoQ    Tags:编程语言   点击:(18)  评论:(0)  加入收藏
大多数IT运营专业人员面临的另一个挑战是需要以更快、更高效、更高的工作量执行任务和工作流程。值得庆幸的是,像无代码自动化这样的工具可以提供一个缺失的环节来优化效率,...【详细内容】
2022-01-29  智能协同表格    Tags:无代码   点击:(13)  评论:(0)  加入收藏
while(1) 和 for(;;)它们不都是无限循环吗,作用应该一样啊,它们到底有什么区别?要回答这个问题,其实你各自编写一段while(1) 和 for(;;)的代码,编译对比一下代码大小和汇编文件,你...【详细内容】
2022-01-25  IT三宝    Tags:汇编   点击:(14)  评论:(0)  加入收藏
一、摘要在实际的业务开发过程中,我们常常会碰到需要与第三方互联网公司进行技术对接,例如支付宝支付对接、微信支付对接、高德地图查询对接等等服务,如果你是一个创业型互联网...【详细内容】
2022-01-24  DNF搬砖摸金达人    Tags:API接口   点击:(16)  评论:(0)  加入收藏
Swiss Army knife 可以说是本周的关键词了,多个项目采用该词来描述它的特性:像是能全方位解决浏览器“网络”操作的 CyberChef 方便你进行数据加密、解编码,还有帮你处理 JSON...【详细内容】
2022-01-24  HelloGitHub    Tags:GitHub   点击:(22)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条