内存溢出内存溢出和内存泄漏的区别

内存溢出  时间:2020-12-25  阅读:()

内存溢出什么意思?怎么解决呢

就是内存不够,

存溢出虽然很棘手,但也有相应的解决办法,可以按照从易到难,一步步的解决。

  第一步,就是修改JVM启动参数,直接增加内存。这一点看上去似乎很简单,但很容易被忽略。JVM默认可以使用的内存为64M,Tomcat默认可以使用的内存为128MB,对于稍复杂一点的系统就会不够用。在某项目中,就因为启动参数使用的默认值,经常报“OutOfMemory”错误。因此,-Xms,-Xmx参数一定不要忘记加。

  第二步,检查错误日志,查看“OutOfMemory”错误前是否有其它异常或错误。在一个项目中,使用两个数据库连接,其中专用于发送短信的数据库连接使用DBCP连接池管理,用户为不将短信发出,有意将数据库连接用户名改错,使得日志中有许多数据库连接异常的日志,一段时间后,就出现“OutOfMemory”错误。经分析,这是由于DBCP连接池BUG引起的,数据库连接不上后,没有将连接释放,最终使得DBCP报“OutOfMemory”错误。经过修改正确数据库连接参数后,就没有再出现内存溢出的错误。

  查看日志对于分析内存溢出是非常重要的,通过仔细查看日志,分析内存溢出前做过哪些操作,可以大致定位有问题的模块。

  第三步,安排有经验的编程人员对代码进行走查和分析,找出可能发生内存溢出的位置。重点排查以下几点:

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

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

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

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

  第四步,使用内存查看工具动态查看内存使用情况。某个项目上线后,每次系统启动两天后,就会出现内存溢出的错误。这种情况一般是代码中出现了缓慢的内存泄漏,用上面三个步骤解决不了,这就需要使用内存查看工具了。

  内存查看工具有许多,比较有名的有:Optimizeit Profiler、JProbeProfiler、JinSight和Java1.5的Jconsole等。它们的基本工作原理大同小异,都是监测Java程序运行时所有对象的申请、释放等动作,将内存管理的所有信息进行统计、分析、可视化。开发人员可以根据这些信息判断程序是否有内存泄漏问题。一般来说,一个正常的系统在其启动完成后其内存的占用量是基本稳定的,而不应该是无限制的增长的。持续地观察系统运行时使用的内存的大小,可以看到在内存使用监控窗口中是基本规则的锯齿形的图线,如果内存的大小持续地增长,则说明系统存在内存泄漏问题。通过间隔一段时间取一次内存快照,然后对内存快照中对象的使用与引用等信息进行比对与分析,可以找出是哪个类的对象在泄漏。

  通过以上四个步骤的分析与处理,基本能处理内存溢出的问题。当然,在这些过程中也需要相当的经验与敏感度,需要在实际的开发与调试过程中不断积累。

内存溢出和内存泄露的区别

内存溢出,指你实际使用的内存大小(范围)超出了你申请的大小(范围),从而造成内存污染或者非法使用了内核空间的内存 内存泄露,指你申请的内存没有在使用完毕后释放,导致该段内存变成野内存,谁也使用不了。

内存溢出和内存泄漏的区别

内存泄漏一般是指内存分配了,但是没有释放。这样会导致内存越用越多,最后没有内存分配,导致系统崩溃。 内存溢出是指给代码分配了一块内存区域,但是没有按照这个指定区域使用,而是超过了分配的空间,经常会有恶意代码通过内存溢出的方式放置恶意代码,并执行这些恶意代码,从而侵入系统或者执行恶意代码。

云如故枣庄高防(49元)大内存2H2G49元8H8G109元

云如故是一家成立于2018年的国内企业IDC服务商,由山东云如故网络科技有限公司运营,IDC ICP ISP CDN VPN IRCS等证件齐全!合法运营销售,主要从事自营高防独立服务器、物理机、VPS、云服务器,虚拟主机等产品销售,适合高防稳定等需求的用户,可用于建站、游戏、商城、steam、APP、小程序、软件、资料存储等等各种个人及企业级用途。机房可封UDP 海外 支持策略定制 双层硬件(傲...

tmhhost:全场VPS低至6.4折,香港BGP200M日本软银美国cn2 gia 200G高防美国三网cn2 gia韩国CN2

tmhhost放出了2021年的端午佳节+618年中大促的优惠活动:日本软银、洛杉矶200G高防cn2 gia、洛杉矶三网cn2 gia、香港200M直连BGP、韩国cn2,全都是高端优化线路,所有这些VPS直接8折,部分已经做了季付8折然后再在此基础上继续8折(也就是6.4折)。 官方网站:https://www.tmhhost.com 香港BGP线路VPS ,200M带宽 200M带...

无视CC攻击CDN ,DDOS打不死高防CDN,免备案CDN,月付58元起

快快CDN主营业务为海外服务器无须备案,高防CDN,防劫持CDN,香港服务器,美国服务器,加速CDN,是一家综合性的主机服务商。美国高防服务器,1800DDOS防御,单机1800G DDOS防御,大陆直链 cn2线路,线路友好。快快CDN全球安全防护平台是一款集 DDOS 清洗、CC 指纹识别、WAF 防护为一体的外加全球加速的超强安全加速网络,为您的各类型业务保驾护航加速前进!价格都非常给力,需...

内存溢出为你推荐
.net虚拟主机想买个同时支持php和.net的虚拟主机,哪里可以买到这样的空间?是同时支持的那种。cm域名注册.Cm是什么域名 网址尾部是.CM的是哪里的网址?哪可以注册?个人虚拟主机个人商城要选多大的虚拟主机?php虚拟空间虚拟空间怎么修改php.ini配置重庆虚拟空间重庆那里可以租用VSP主机成都虚拟主机一个虚拟主机最多支持几个子目录呢?一个百度推广账户是不是只能推广一个主域名下的网站?jsp虚拟主机java虚拟主机空间怎么选择,国内jsp虚拟主机比较稳定,现在java项目做好后需要推荐一下吧河南虚拟主机新乡在哪个网站买虚拟主机好?西安虚拟主机西部数码虚拟主机怎么样,西部数码云主机怎么样shopex虚拟主机支持PHPwind、ShopEx等建站程序的主机什么最好?
100m虚拟主机 游戏服务器租用 美国vps推荐 hawkhost 好看的留言 tightvnc 网站实时监控 亚洲小于500m 有益网络 秒杀汇 电信主机 申请网页 韩国代理ip 谷歌台湾 永久免费空间 江苏徐州移动 国外免费云空间 hostease 中国电信宽带测速 网站防护 更多