内存溢出的几种原因和解决办法(内存泄漏和内存溢出的原因寻找)
内存溢出的原因有很多种:
1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;
2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;
3.代码中存在死循环或死循环产生过多重复的对象实体;
4.使用的第三方软件中的BUG;
5.启动参数内存值设定的过小;
6.死锁
内存溢出的解决方案:
1、就是修改JVM启动参数,直接增加内存。
2、检查错误日志,查看“OutOfMemory”错误前是否有其它异常或错误。
3、使用jconsole来查看死锁
4、对代码进行走查和分析
1.检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式进行查询。
2.检查代码中是否有死循环或递归调用。
3.检查是否有大循环重复产生新对象实体。
4.检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。
5.检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。
其他文章
- 3号线地铁站点线路图 重庆3号轻轨线路站点
- 中国p2p行业排名(最新p2p理财公司排行榜前十都有哪些)
- 分期购车计算器 车辆分期计算器
- 哪些网贷平台倒闭名单(23年清退网贷平台名单)
- 存款计算器在线计算公式(每年存1万存20年复利求和公式)
- 极速借款app下载(快速贷款的软件有哪些)
- 中信银行圆梦金怎么刷出来?可以一次刷完吗
- 网络贷款账号注销方法详解(避免被骗,必须掌握的几个步骤)
- 农业银行信用卡进度申请查询 农行申请进度查询入口
- 佛山市社保局(佛山顺德社保查询官网)
- 中国六大银行排名(六大银行排名顺序)
- 龙腾卡怎么办理的(高铁站贵宾室怎么办理)
- 手机上怎么炒股票交易?教你一招快速入门
- 好贷网是正规平台吗(支付宝招联好期贷可靠吗到底能不能下款)
- 工行商友卡(工行商友卡是什么卡)
- 山东农村信用社电话95 96668是什么银行
- 二手房免费估价计算器,房屋估价计算器
- 恒丰银行客服电话是多少 恒丰银行密码错误超次数怎么办
- 怎么查建行贷款信息(详解建行贷款查询方法)
- 中国银行汇率实时查询 中国银行实时汇率查询
- 交行电话95559 交通银行上班时间2023
- 花呗逾期90天还能用吗,花呗逾期100多天还上可不可以继续用
- 信贷宝是正规借款平台吗(信贷宝2023上征信吗)
- 阿里小贷app(阿里小额电商是什么)
- 任丘人在线招聘信息,任丘人才招聘网最新招聘2023
- 旋极信息(300324)股吧(300324旋极信息是什么概念股)
- 利率较低的正规网贷有哪些?盘点5家靠谱的低借贷平台
- 拒绝男朋友借钱的技巧学起来!这么烦恼怎么办?
- 余额宝定期30天理财(支付宝月月享定期存款靠谱吗)
- 怎么购买科创板股票_科创板股票投资指南