互联网服务中间件

开发中的内存溢出问题,是架构设计问题?还是编码问题?

内存溢出(Out Of Memory,简称oom) 是指应用系统中无法回收内存或使用的内存过多,导致程序运行所需内存大于虚拟机提供的最大内存。内存溢出是比较常见的一种应用程序性能问题,一旦发生,则系统的可用内存和性能持续下降;最终将导致内存不足(OutOfMemory),系统彻底宕掉,不能响应任何...显示全部
内存溢出(Out Of Memory,简称oom) 是指应用系统中无法回收内存或使用的内存过多,导致程序运行所需内存大于虚拟机提供的最大内存。

内存溢出是比较常见的一种应用程序性能问题,一旦发生,则系统的可用内存和性能持续下降;最终将导致内存不足(OutOfMemory),系统彻底宕掉,不能响应任何请求,其危害相当严重。

内存溢出可能产生的原因:
1、一次性加载到内存的数据量过于庞大,使得JAVA堆空间耗尽;
2、配置参数指定的JVM堆最大值太小;
3、内存泄露(Memory leak)问题。

我们在日常的技术开发工作中,偶然会遇到内存泄露/溢出的问题。虽然问题并不常见,但偶然的发生也使得技术应用开发者非常头疼。企业应用程序中的内存泄漏会导致大量的危急情况。付出的代价包括用于进行分析的时间和资金、生产环境中开销巨大的停机时间、压力以及对应用程序和框架丧失信心。

那么开发中常常导致的内存溢出(oom)是架构设计的问题呢?还是开发编码的问题呢?


辩论时间:2010年9月1日-2010年9月8日10:00

活动规则:

1、在为期一周的辩论时间里,大家可以投票给你支持的一方,并可对支持方发表自己的观点(发布观点时,请选择支持方);

2、在活动结束后,根据正反方投票数决定辩论赛的胜出方,胜出方的支持者将再获得20W币奖励;

2、在辩论结束后,我们将把大家发表的观点整理出来(像顶!支持!等垃圾回复贴排除!),开设1个投票贴,最后由会员集中投票,选出本次辩论的最佳观点。最佳观点的发表者将获得IBM保温杯一个+《WebSphere中国》往期杂志1本

baowenbei.jpg



收起
参与44

查看其它 43 个回答sampan的回答

sampansampan项目经理IT企业
应该跟架构不着边的问题,当然是编码问题
银行 · 2010-09-06
浏览492

回答者

sampan
项目经理IT企业
擅长领域: 存储前置系统数据库

sampan 最近回答过的问题

回答状态

  • 发布时间:2010-09-06
  • 关注会员:0 人
  • 回答浏览:492
  • X社区推广