Console.WriteLine和内存泄漏

时间:2012-07-24 21:06:48

标签: c# memory-leaks console console.writeline

我正在尝试减少我拥有的控制台应用程序的内存使用量。它应该连续运行几个小时,但似乎内存使用量逐渐增加。它确实使用了多个线程,并且可以执行各种操作,但我在某处读到了对Console.WriteLine的大量调用也会导致内存峰值。

因为应用程序不断写入控制台,我认为可能是内存使用是因为这个原因。不幸的是,我无法轻松清除控制台,因为我正在将输出重定向到监视窗口。我暂时关掉了它,但记忆力还在增加,这告诉我还有其他事情需要解决。

在我寻找内存泄漏之前,我想知道是否有人可以确认/验证是否有数千个Console.WriteLine可能导致内存泄漏,或者是否已由重定向的输出缓冲区正确处理。我试图进行搜索,但对此没有太多了解。

1 个答案:

答案 0 :(得分:3)

Console.WriteLine进行数千次调用不会导致内存泄漏。我有一个长期运行的程序(现在已经运行了6个月),它每分钟写入几百行到控制台,并且它的内存使用量保持不变。

可能一次不频繁地写入数千行可能会因临时字符串而导致内存峰值,但这些将在下次运行GC时收集。但Console.WriteLine的稳定负载只会导致未收集字符串的稳定内存负载。它不会不断增加。