Windows服务内存泄漏

时间:2014-06-23 05:53:30

标签: c# memory-management memory-leaks windows-services

我有一个Windows服务来从远程数据库获取数据以更新本地。对于每个get操作,我正在编写一个包含信息(错误,成功)的日志文件以供审阅。

然而,数据是如此巨大,有时,服务正在使用服务器上的RAM并因此崩溃:(。我知道有内存泄漏,我无法发现它。但是,在我的初步分析中我我发现内存泄漏可能与我写日志的方式有关。以下是对我正在做的事情的简短解释。

我有一个Utility“STATIC”类,其中包含一个将条目写入日志的方法。

private static readonly object syncObj = new object(); //Class scope property

private static void Log()
{
    lock (syncObj)
    {
        using (var sw = new StreamWriter("c:/test.txt", true))
        {
           sw.WriteLine("message");
        }
    }
}

此方法被称为记录文件条目的次数。我无法理解内存泄漏的位置以及如何填补泄漏。

  1. 它是静态类的静态类(我不能使用IDisposable)[我不确定,因为我已经在编写using子句来限制内部执行的范围了。]
  2. 是不是我不确定的编写器,我应该用File.AppendAllText(路径,消息)替换它吗?
  3. 这是我使用效率低下的锁吗?
  4. 真正感谢任何帮助。

0 个答案:

没有答案