GarbageCollector,Dispose还是静态方法?

时间:2009-11-18 08:22:53

标签: c# memory-leaks garbage-collection dispose

我上个月开了几门课。它们变得很大(每个班级30-40个方法)。

我从未想过Memory Leaks,GarbageColletor或类似的东西(我必须说这是我自己的第一个大项目)。

现在我有方法课程,15个课程围绕,每个课程分钟。 20种方法。 50%是DAL中的Linq-Classes,50%是BusinessLogic中的BusinessClasses。 NO Class使用全局变量(不需要),所以理论上我可以使它们成为静态类+方法。目前它们不是,我初始化一个类对象并使用该类 - 而不是处理它。

当系统运行~100位用户时,我会因为内存泄漏等而生气,应该从哪里开始?

2 个答案:

答案 0 :(得分:3)

不要担心类的方法,因为它们不占用内存:每个方法在类定义中只存在一次。真正需要记忆的是以字段形式包含在对象中的数据。

关于处理对象(我假设这里是.NET),除非你使用非托管资源,否则没有必要。垃圾收集器将在必要时负责释放所有托管资源(即普通对象及其数据)。

如果您想了解有关.NET垃圾收集器的更多信息以及如何处理内存泄漏,您可以查看此处:http://www.codeproject.com/KB/dotnet/Memory_Leak_Detection.aspx。但是,如果您处于项目的开始阶段,我将专注于获得清晰且可维护的设计,而不是内存管理问题。

答案 1 :(得分:1)

是否可以创建类static不依赖于“全局”变量的使用,而是依赖于类使用实例字段(类成员变量)的事实。如果您的方法不使用实例数据,则可以是静态的(并且有一个轻松的优先选择)。如果所有方法都是静态的,那么也可以使类静态化。