导致内存溢出的原因有哪些?内存溢出问题又如何解决

所属分类: 硬件教程 / 内存 阅读数: 146
收藏 0 赞 0 分享

之前小编为大家介绍了一下内存溢出是什么意思。那么有的网友肯定会问导致的内存溢出的原因是什么?出现额内存溢出又如何解决。不急,下面小编就再次为大家分享一下内存溢出的原因以及解决方法。

内存溢出的原因以及解决方法
内存溢出的原因以及解决方法

引起内存溢出的原因有很多种,小编列举一下常见的有以下几种:

1.内存中加载的数据量过于庞大,如一次从数据库取出过多数据;
2.集合类中有对对象的引用,使用完后未清空,使得JVM不能回收;
3.代码中存在死循环或循环产生过多重复的对象实体;
4.使用的第三方软件中的BUG;
5.启动参数内存值设定的过小

内存溢出的解决方案:

第一步,修改JVM启动参数,直接增加内存。(-Xms,-Xmx参数一定不要忘记加。)

第二步,检查错误日志,查看“OutOfMemory”错误前是否有其它异常或错误。

第三步,对代码进行走查和分析,找出可能发生内存溢出的位置。

重点排查以下几点:
1.检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。

2.检查代码中是否有死循环或递归调用。

3.检查是否有大循环重复产生新对象实体。

4.检查对数据库查询中,是否有一次获得全部数据的查询。一般来说,如果一次取十万条记录到内存,就可能引起内存溢出。这个问题比较隐蔽,在上线前,数据库中数据较少,不容易出问题,上线后,数据库中数据多了,一次查询就有可能引起内存溢出。因此对于数据库查询尽量采用分页的方式查询。

5.检查List、MAP等集合对象是否有使用完后,未清除的问题。List、MAP等集合对象会始终存有对对象的引用,使得这些对象不能被GC回收。

第四步,使用内存查看工具动态查看内存使用情况

更多精彩内容其他人还在看

如何控制内存的大小

  一台电脑上装了多少内存是在硬件上是确定了的,但我们平常使用的软件对内存数量的需求却有不同,怎样控制内存的大小以满足软件的需要,将是本文下面谈及的内容。  面对功能日益强大,而体积也日渐庞大的软件,内存当然是越大越好,要是内存的
收藏 0 赞 0 分享

在BIOS中优化内存的方法

内存在电脑中的重要性和地位仅次于CPU,其品质的优劣对电脑性能有至关重要的影响。为充分发挥内存的潜能,必须在BIOS设置中对与内存有关的参数进行调整。下面针对稍老一点的支持Intel PentiumⅢ、CeleronⅡ处理器的Intel 815E/815EP芯片组主板、VIA(
收藏 0 赞 0 分享

深入理解动态内存的BANK概念

  关于内存BANK的概念,普通用户首先是在VIA系列主板的BIOS设置中碰到的,一般有BANK 0/1 DRAM Timing、BANK 2/3 DRAM Timing、BANK 4/5 DRAM Timing三项有关内存条工作参数设置的选项
收藏 0 赞 0 分享

让不同品牌内存混插,和平共处

    随着电脑硬件的不断发展,一些用户都不可避免的需要在一段时间后升级以下自己的硬件配置,而每―次的升级都会给不少用户留下一些仍可以使用的硬件资源,其中又以内存居多,内存相比其他的硬件发展速度要慢上不少,而我们升
收藏 0 赞 0 分享

什么是DDR内存

  DDR内存现在渐渐成为内存市场中新的宠儿,因其合理的性价比从其诞生以来一直受到人们热烈的期望,希望这一新的内存产品全面提升系统的处理速度和带宽,就连对Rambus抱有无限希望的Intel公司也向外
收藏 0 赞 0 分享

使用Thaiphoon更改DDR2内存条SPD信息

    耗子有一台DELL Inspiron 630M笔记本,其购买时,标配是256 DDRII 533内存;但当时DELL公司促销,购买机器再送一条256 DDRII 533内存。收到机器后,由于赠送的内存不是随机自带的,因此虽然与原配内存都是现代
收藏 0 赞 0 分享

什么是内存的Parity、ECC和SPD

对于内存的奇偶校验(Parity)要从比特概念说起,比特(bit)是内存中的最小单位,也称“位”、它只有两个状态分别以1和0表示。我们将8个连续的比特叫做一个字节(byte)。非奇偶校验内存的每个字节只有8位,
收藏 0 赞 0 分享

内存条什么牌子好以及电脑内存条怎么装

内存是程序运行的场所,CPU从内存中获得数据,并把处理结果放在内存中。
收藏 0 赞 0 分享

内存条金手指烧毁的原因还可以使用吗

这种情况经常出现,只要做过电脑维修的恐怕都遇到过类似插反内存烧毁的事情。一般情况下,内存条的烧毁多数都是因为我们在长时间的故障排除过程中。
收藏 0 赞 0 分享

内存六种异常故障排除方法

当启动电脑、运行操纵系统或应用软件的时候、经常会由于内存出现异常而导致操纵失败。在这里总结了一些内存出现异常的原因,并给出以下几种处理方法,希望可以给大家一些帮助 - IT之家(www.ithome.com):网传“女生最厌恶的
收藏 0 赞 0 分享
查看更多