内存泄漏除了重启还有其他办法吗

xiehuanxie 2012-07-04 09:35:43
我的程序调用了一个第三方的DLL,有内存泄漏,他们修复这个问题估计要很长时间。
有什么办法清内存吗?

隔一段时间重启程序一次应该是可以的,但是重启的话比较废时间,还容易出问题。
...全文
598 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoyao1212121 2012-07-04
  • 打赏
  • 举报
回复
有些软件应该有内存整理的功能吧??比如360什么的!!
xiehuanxie 2012-07-04
  • 打赏
  • 举报
回复
如果非托管内存有泄漏,我把那个Assembly用另一个AppDomain加载,一段时间后把AppDomain载了再弄个新的,这样能解决问题吗?
xiehuanxie 2012-07-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 的回复:]
为什么修复要很长时间?如果确定是DLL内部发生内存泄漏,立刻就可以修复。除非是你不清楚到底是不是它的问题。你最好先检查下自己的代码,看你分配的或者它返回的非托管内存是否有释放过程,没有的话,就是这部分问题了。
[/Quote]

因为第三方软件是别人的,发个邮件都要等好几天才有回复,更别指望短时间内能把问题解决了。
qldsrx 2012-07-04
  • 打赏
  • 举报
回复
为什么修复要很长时间?如果确定是DLL内部发生内存泄漏,立刻就可以修复。除非是你不清楚到底是不是它的问题。你最好先检查下自己的代码,看你分配的或者它返回的非托管内存是否有释放过程,没有的话,就是这部分问题了。
阿冷 2012-07-04
  • 打赏
  • 举报
回复
重启程序,也不能一定说把以前的进程都杀死啊。
要是不能修改第三方代码的话,看看到底生成那个多余的进程,找个合适的时刻,比如第三方dll利用完了之后,强行结束那个进程。
cnfixit 2012-07-04
  • 打赏
  • 举报
回复
在没有根除这个问题之前,貌似也只有这个办法了
fox123871 2012-07-04
  • 打赏
  • 举报
回复
恩 找到问题的原因修改,例如reader没关闭,或者是有流 未关闭,都会引起内存的泄露!
bdmh 2012-07-04
  • 打赏
  • 举报
回复
改代码
ycproc 2012-07-04
  • 打赏
  • 举报
回复

没办法,最好从源头解决

110,571

社区成员

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

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

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