日期:2014-05-18  浏览次数:21239 次

Out of Memory
这个问题实在是太纠结了,因为这个问题他不是每次都出来,有时候会报出这个问题,有时候又不会。
不知道如何去查找到底是哪里导致的这个问题,还有如何去解决这个问题。
不要回答我说什么内存不够,增加内存等。
这个应该是程序上的问题,只是不知怎么去寻找问题发生在哪里。
谢谢

------解决方案--------------------
用到递归了吗
------解决方案--------------------
内存溢出。
------解决方案--------------------
有未关闭的连接?
------解决方案--------------------
程序问题
------解决方案--------------------
探讨
这个问题实在是太纠结了,因为这个问题他不是每次都出来,有时候会报出这个问题,有时候又不会。
不知道如何去查找到底是哪里导致的这个问题,还有如何去解决这个问题。
不要回答我说什么内存不够,增加内存等。
这个应该是程序上的问题,只是不知怎么去寻找问题发生在哪里。
谢谢

------解决方案--------------------
你要先定位错误,知道这个异常到底是在哪个方法里抛出的才能分析原因
------解决方案--------------------
问题太笼统了!!!

类似问题,参考下
http://topic.csdn.net/u/20070301/13/668a4840-1f53-4691-a535-fcf64d76aff9.html
------解决方案--------------------
探讨

用到递归了吗

------解决方案--------------------
使用完对象 尽量都close dispose =null吧。
尽早释放。

------解决方案--------------------
探讨

引用:

用到递归了吗
递归一般是StackOverflow吧

------解决方案--------------------
DONET 自带的ADO的DATASET控件连接数据库?(非后台代码写的)
数据库的问题,重做或者增加配置。
------解决方案--------------------
好笼统的问题啊
------解决方案--------------------
不知道你做的是什么项目,所以不好说。但是我们前一段时间也遇到了这种问题。
这种问题的话,当时我们断定是空间没有释放照成的,后来也的确发现是这样的。
当然 ,项目非常的大,不可能一行一行的看代码。
我们主要先分析它可能带的log,然后在log中发现规律。当然,这个一般没有用,但是你最好还是看一下。
然后我们就自己在里面打log,看看他在那里进去,又有哪些路没有走到-----这个非常的麻烦的,兄弟,如果想解决问题,不可能不麻烦的。
同时再看看代码中malloc和free有没有成对出现。
最后找到在一个函数中只有进去没有出来,并且在这个函数执行前有malloc,之后正常的话,有free,但没出来,当然不free了。


所以,首先代码大概的逻辑你必须知道的,不管多麻烦,知道在那里分配地址,在那里释放。
然后根据自己的猜想在需要的地方打log---这个又一定的偶然性。

其实主要还是分析代码,将每条路都画出来。在路中那里malloc,那里free,都裱起来,不然,估计还真没办法。
------解决方案--------------------
我们这个问题是android中的底层库中的问题,不是donet,不过思路应该一样吧?
------解决方案--------------------
探讨

如何适时监控memory呢。给点代码提示。

------解决方案--------------------
YourKit Java Profiler
------解决方案--------------------
找规律。。。如果程序只是打开什么都不做也这样,那么就是公共库代码引起的。
。。。。。。递归、循环、超大数据,图像等等。。。。。。
------解决方案--------------------
已经成形的项目查起来就费劲了,你可以借用一些第3方的内存泄露检查工具。检查一下。

使用 .Net Memory Profiler 诊断 .NET 应用内存泄漏(方法与实践)
------解决方案--------------------
使用了的对象要及时释放
------解决方案--------------------
使用了的对象要及时释放,慢慢查查吧,祝你成功!