内存溢出的几种原因和解决办法(内存泄漏和内存溢出的原因寻找)
内存溢出的原因有很多种:
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回收。
其他文章
- sw怎么做动画演示(sw动画制作教程)
- 查看局域网内流量的软件(局域网查看工具安卓版)
- 模数转换器的基本原理是什么(模数转换电路工作原理讲解)
- 抖音月付怎么取消(教你正确关闭抖音月付功能)
- 淘宝礼物店铺推荐(口碑最好的淘宝礼品店介绍)
- bonjour被卸载了会怎样(系统bonjour服务禁用的解决教程)
- 怎么看对讲机的有效距离(详解无线对讲机最远距离)
- 无线控制器的作用是什么(无线ap控制器连接图)
- word做公章的最简单方法(word公章的标准格式)
- ps怎么做艺术字体设计(ps软件基础教程)
- 计算机辅助设计软件有哪些(永久免费的cad软件推荐)
- 可视化编程软件有哪些(盘点五款好用的编程软件)
- 音乐网站有哪些(盘点七大免费音乐素材库)
- 淘宝购物须知在哪里看(淘宝购物教程新手入门)
- 剪切板怎么弄出来(打开win7系统剪切板方法步骤)
- ppt主题颜色怎么设置(ppt模板统一改色调)
- 女包店铺介绍怎么写(中国一线品牌女包品牌)
- 淘宝全民疯抢活动入口是什么(淘宝活动入口查找)
- 苹果appstore宕机能否解决(苹果appstore打不开的修复)
- 电压表的工作原理图解(最简单的数显电压表电路图)
- 淘宝热卖商品的特点(盘点淘宝热销产品)
- 淘宝秒杀时间一般是多久(关于淘宝秒杀时间校准)
- 抖音上必火童装文案吸引顾客(有创意的童装店铺简介)
- 百度图片打不开是什么原因(关于图片打不开的修复)
- 卡特天赋怎么点(最新卡特琳娜天赋加点图)
- 图案图章工具的使用方法(ps图案图章工具添加图案的技巧)
- 天天购物网优惠券怎么用(各种优惠券获取渠道)
- 抖音音乐火爆歌曲有哪些(抖音上很火的音乐分享)
- dsp原理及应用是什么(DSP全面解析)
- 虚拟声卡驱动怎么安装(声卡驱动的安装教学)