【发布时间】:2012-05-11 06:19:57
【问题描述】:
我编写了一个 .NET C# windows 服务,它在我们的服务器上运行了很长时间(几个月)。
昨天我检查了一下,发现它使用了 600MB 的内存。 我重新启动了服务,现在它使用了 60MB 内存。
我已经开始检查它为什么使用这么多内存。 下面的函数会导致内存泄漏吗?
我认为它缺少 StreamReader 的 .Close()。
作为测试,我已经在循环中运行了以下函数 1000 次,但我没有看到内存增加。
private static string GetTemplate(string queryparams)
{
WebRequest request = HttpWebRequest.Create(uri);
request.Method = WebRequestMethods.Http.Get;
WebResponse response = request.GetResponse();
StreamReader reader = new StreamReader(response.GetResponseStream());
string tmp = reader.ReadToEnd();
response.Close();
}
【问题讨论】:
标签: c# .net visual-studio .net-4.0