内存溢出的几种原因和解决办法(内存泄漏和内存溢出的原因寻找)
内存溢出的原因有很多种:
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回收。
其他文章
- 公司怎么在异地设立办事处
- 大气好记的网络公司名字
- 进口关税账务处理怎么做
- 高效便捷的青岛李沧公司注册流程,助您快速开展业务
- 日本注册公司的流程和费用分别是多少呢?
- 青岛外贸公司注册流程详解!
- 简单易懂的垫资注册公司流程,让你轻松创业!
- 开户许可证变更麻烦吗,怎么变更银行开户许可证
- 如何使用工商局注册公司查询功能?
- 南京代账公司的收费标准是什么?
- 《公司债权转股权登记管理办法》解读
- 三证合一后组织机构代码证办理的流程和注意事项是什么
- 如何注册一家合资公司,步骤详解!
- 李沧区注册公司需注意哪些事项?
- 网络公司注册多少钱才能搞定
- 申请公司注册要求多少钱,申请公司注册要求多少钱一个
- 安防公司怎么注册
- 蚌埠公司注册地址怎样挑选?蚌埠公司注册地址如何挑选?
- 注册安圭拉公司
- 即墨公司注册指南:从申请到开业全攻略!
- 出租车营业执照的有效期是多久?注意这些细节!
- 上海工商局电话,上海办理营业执照地址及电话
- 注册伯利兹公司流程及注意事项解析
- 典当公司注册所需手续及注意事项详解
- 东莞工商局网站官网
- 外贸流程中涉及的单证有哪些?
- 政务便民!一键进入注册公司网上申请入口
- 必知!个人独资企业所得税税率最新调整揭秘!
- 需要注册的深圳投资公司具备的条件
- 贵州茅台集团标志图片是什么