c# - .Net 内存增长问题

标签 c# .net windows memory-management memory-leaks

我有一个进行大量文本解析的应用程序。每次通过后,它都会将一些信息吐出到数据库中并清除所有内部状态。

我的问题是 Windows 任务管理器/资源监视器中分配的内存不断增长。我已经使用 .Net Mem Profiler 完成了一些配置文件,看起来它应该会下降。这是探查器的屏幕截图:

enter image description here

但是在任务管理器中,每次通过内存私有(private)工作集后都会增加。我希望内存随着使用而增长,然后在每次通过后恢复到正常水平,这样我就可以让这个东西继续运行。

关于寻找什么的任何建议或导致这种情况的任何想法?

最佳答案

需要检查的几件事是:

  1. 事件处理程序使对象保持事件状态,确保如果订阅事件的对象在对象发布事件之前超出范围,它会取消订阅事件以防止发布对象保留对它的引用。
  2. 确保对任何实现了 IDisposable 的对象调用了 dispose。一般来说,实现 IDisposable 的对象包含需要特别整理的资源。
  3. 如果您引用任何 com 对象,请确保正确释放它们。

您永远不必在生产代码中调用 GC.Collect()

关于c# - .Net 内存增长问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9847795/

相关文章:

c# - 在 C# 中获取两个日期之间的月份差异的最简单方法是什么?

C# : Specifying a location for Dll reference

c# - 以编程方式检测有故障或丢失的驱动程序

mysql - 如何在 Windows 上直接从 freeswitch 将通话数据记录存储在 MySQL 中?

c# - 带参数的 Office Interop 构造函数

c# - 在 C# 中搜索文件的更好方法

c# - Entity Framework 分组依据和实际 SQL 未有效编写

c# - 带动态参数的动态 lambda 表达式

.net - 使用 FileHelpers 导出 DataTable

windows - Windows 中的 PAM "session required module"等效项