我编写了一个在我们的服务器上运行很长时间(几个月)的 .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();
}