C# 内存莫名奇妙溢出

anuosix 2014-06-14 06:46:58
程序原来运行挺好,从昨天开始就莫名奇妙的出现内存溢出问题,一般都是程序运行了几分钟或几十分钟之后出现,而且出现的位置不确定,据观察有七八处都出现溢出,而且基本都是readline, string.tolower之类的非常基础的操作语句,不明白怎么回事啊
程序运行的服务器配备了128g的内存,不大可能出现不够用的情况啊,拜托各位大侠给点建议啊,从哪里入手排除问题呢
...全文
246 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
申江渔夫 2014-06-17
  • 打赏
  • 举报
回复
用.NET Memory Profiler工具查一下看看。
smthgdin_020 2014-06-17
  • 打赏
  • 举报
回复
代码问题吧,很多时候是代码造成的。
SadlyCodes 2014-06-17
  • 打赏
  • 举报
回复
没代码说个XX
tcmakebest 2014-06-15
  • 打赏
  • 举报
回复
没有莫名其妙的溢出,只有粗制滥造的代码,楼主多用点心
wangnaisheng 2014-06-15
  • 打赏
  • 举报
回复
引用 4 楼 anuosix 的回复:
引用 2 楼 wangnaisheng 的回复:
使用数据库要及时关闭。数据库的连接池修改大点。
没有连数据库,只是文件读写,而且是单线程运行,:(
你这单线程中是否有需要申请内存的操作,大概是过度的申请内存,导致内存不够造成的吧
zjwym 2014-06-15
  • 打赏
  • 举报
回复
有没有答案呢。我也想知道
zhouxiulu 2014-06-15
  • 打赏
  • 举报
回复
en。。。 如果我猜想的话。。。 可能是你解析字符串写入文件之后没清空。。。 以前多线程的时候肯定设定为后台运行了。。 如果内存不够就会被销毁。。 现在只有主线程反而不能销毁而出现溢出了
L_lxc 2014-06-14
  • 打赏
  • 举报
回复
很可能你程序里有死循环,事件没弄好,检查下
anuosix 2014-06-14
  • 打赏
  • 举报
回复
引用 2 楼 wangnaisheng 的回复:
使用数据库要及时关闭。数据库的连接池修改大点。
没有连数据库,只是文件读写,而且是单线程运行,:(
anuosix 2014-06-14
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
能配备有128G内存,挺有钱啊。不过可能比不过那些只配得起8G的。 建议就是,回答我的几个问题(我们做任何靠谱的产品都要每天回答这类问题):你的程序每天经过上万次自动测试了么?你写了多少测试用例?除了反复循序测试、进行过并发测试么?测试数据通常是随机生成的么?你如何写出测试用例来发现内存溢出的呢?
配那么大内存只是为了多开虚拟机,不是目前这个程序运行本身需求,只是它也在那个机器上运行,虚拟机开了大概40台,为其分配的内存每个1g,主机系统一直很流畅,没有卡顿现象出现,应该和虚拟机没关系,以前已经运行过挺长时间,不过也不是持续运行,只是一个小程序,每天会运行几个小时,不是多大的应用,就是下载网页解析网页,现在是解析下载来的网页出现问题,就是一般的html文本分析,提取出网页的关键字和标题,并且只开一个线程也会这样,话说以前都是开几十个线程啊,平稳运行都没问题,大佬给点建议可能是哪方面出了问题呢,我好有个方向,现在感觉是无从下手,这个程序不是商用,只是个人的一点应用,只要能运行就成,要求不高啊
wangnaisheng 2014-06-14
  • 打赏
  • 举报
回复
使用数据库要及时关闭。数据库的连接池修改大点。
  • 打赏
  • 举报
回复
能配备有128G内存,挺有钱啊。不过可能比不过那些只配得起8G的。 建议就是,回答我的几个问题(我们做任何靠谱的产品都要每天回答这类问题):你的程序每天经过上万次自动测试了么?你写了多少测试用例?除了反复循序测试、进行过并发测试么?测试数据通常是随机生成的么?你如何写出测试用例来发现内存溢出的呢?

110,570

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧