新手系统监测方法论

时间:2012-10-18 07:14:04

标签: c# .net class service monitoring

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

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

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

1 个答案:

答案 0 :(得分:0)

  

请注意,这些方法将在一整天的设定频率上重复调用,这使得它们成为一个好主意或坏主意。

使方法静态不会给您带来显着的性能提升。

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

很难测试基于静态类的系统,你不能轻易地将事物隔离开来进行独立测试(你必须为此目的使用Moles)。

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

  

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

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