我正在尝试减少我的控制台应用程序的内存使用量。它应该连续运行几个小时,但似乎内存使用量每秒都在逐渐增加。它确实使用了多个线程,并做了很多事情,但我在某处读到,对Console.WriteLine的大量调用也会导致内存峰值。
因为应用程序不断地向控制台写入数据,所以我认为内存使用可能是因为这个原因。不幸的是,我不能轻松地清除控制台,因为我将输出重定向到监视窗口。我暂时关闭了它,但内存仍在增加,这告诉我还有其他事情需要解决。
在我开始寻找内存泄漏之前,我想知道是否有人可以确认/验证拥有数千个Console.WriteLine是否会导致内存泄漏,或者重定向的输出缓冲区是否已经适当地处理了这个问题。我试着搜索了一下,但没找到太多。
发布于 2012-07-25 05:50:16
对Console.WriteLine的数千次调用不会导致内存泄漏。我有一个长时间运行的程序(它已经运行了6个月),它每分钟向控制台写入几百行代码,并且它的内存使用量一直保持在一个水平。
由于临时字符串的原因,不频繁地一次编写数千行代码可能会导致内存峰值,但这些代码将在下次运行GC时收集。但是,稳定的Console.WriteLine负载只会导致未收集字符串的稳定内存负载。它不会一直增加。
https://stackoverflow.com/questions/11639316
复制相似问题