【问题标题】:Newbie System Monitoring Methodolygy新手系统监控方法
【发布时间】:2012-10-18 07:14:03
【问题描述】:

我正在编写一个代理来使用用 C# (.NET) 编写的 Windows 服务来监视和收集各种 Windows 系统设置/信息。 主服务在启动时从配置文件中读取,并在列表中存储它必须运行的所有测试。然后计时器以适当的频率运行各个方法。 我创建了一个类库,其中包含用于检查服务、注册表项、获取系统信息等的各个类。主服务中的方法使用类库中的方法来获取它们的信息,然后再将数据写入文件并上传到主服务器.类中的大多数方法都是静态的(尽管有些不是)。 请记住,这些方法将在一天中以设定的频率重复调用,这使它们成为静态的好主意或坏主意。 内存使用稳定,但比我预期的 25-30MB 略高。 任何人都可以看到我这样做的方式有任何重大缺陷吗?

我的 WriteToFile 和 WriteToLog 方法都是静态无效的,并且在调用它们时都创建和处置 StreamWriter。 我想知道这是否有意义,或者我应该采取不同的做法(比如在服务启动时创建一个 StreamWriter 并将其传递给 WriteTo 方法)。

我不明白的另一件事是,我从文本文件加载了要运行的检查列表,文本文件的大小只有 3KB,但与文本文件为空白相比,它需要额外的 7MB 内存。

【问题讨论】:

    标签: c# .net class service monitoring


    【解决方案1】:

    请记住,这些方法将在一天中以设定的频率重复调用,这让它们成为一个好主意或坏主意。

    将方法设为静态不会显着提升性能。

    当你设计一个系统时,你应该问自己:“我如何测试它?”。

    很难测试基于静态类的系统,您无法轻松隔离事物以独立测试(您必须为此使用Moles)。

    在静态类中包含核心逻辑的系统也很难维护,因为你不能限制它的范围。

    内存使用稳定,但比我预期的 25-30MB 略高。

    如果您的程序将在桌面平台上运行,请不要担心,30MB 对于现代台式计算机来说不算什么。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多