300MB内存占用不好吗?

时间:2011-08-24 10:13:15

标签: c# .net memory

我们有一个c#.NET应用程序,占用空间大约为300 MB。

我的问题:

  1. 您是否监控应用程序的内存占用?
  2. 300MB的足迹是不是很糟糕?
  3. 那里有指导方针吗?

4 个答案:

答案 0 :(得分:2)

简短回答:

我们只监视过WPF应用程序的内存使用情况,由于我们的第三方控件之一的错误而导致该内存使用变得非常严重。

由于.NET提供了托管框架,因此唯一的指导原则可能是不担心内存,只要它不会成为问题。 GC可以很好地处理自己,只要它们的内存仍然可用,为什么不使用它?

那么什么时候成为一个问题呢?当您需要开始担心时,可能会出现内存异常。我个人从未见过这种情况。

答案 1 :(得分:2)

通常情况下,静态内存占用量不是问题,除非它在目标计算机上造成问题。内存的真正问题是当你有内存泄漏时,内存正在增加。

我从不打扰的原因是我不知道特定应用程序的内存占用是好还是坏。我认为有更好的途径来识别代码中的问题而不是关注内存。简单来说,如果您的代码写得很好,并且您已经删除了不需要的引用,那么您的内存占用将是正确的。

答案 2 :(得分:1)

最重要的是它不会随着时间的推移而增长。为了正确地理解这一点,偶尔进行一些强制垃圾收集会很有用,最好是在你期望内存使用率很低的时候。

在我们的GUI应用程序中,我们在会话关闭时执行此操作,每10分钟左右。如果人们反对在发布应用程序中强制使用GC,则可以将其设置为仅限调试版本的功能。

答案 3 :(得分:1)

我只担心内存会在一段时间内增长 - 您可能需要使用自动化测试来反复重复操作以暴露此类内存泄漏(请参阅How to test a WPF user interface?

如果您真的担心我会考虑使用Redgate ANTS Profiler等内存分析器,或者如果您想免费试用CLRProfiler4;后者是很难使用的,但它仍然会耐心地发现内存泄漏。