.Net内存限制

时间:2010-04-06 17:42:12

标签: .net memory

我有一个在32位盒子上运行的.Net应用程序。该应用程序是一个Windows服务。它始终徘徊在600-800 MB范围内。这是一个问题。如果应用程序超过1 GB,那么它是内存问题吗?

4 个答案:

答案 0 :(得分:2)

不,如果主机有足够的内存,那就完全没问题了。但是,您可能希望监视完整的GC运行;完全垃圾收集不应经常发生(偶尔发生,肯定不是每隔几秒),如果他们这样做,则表明进程正在运行其内存限制并且“浪费”太多时间尝试恢复内存,最终这个过程很慢。

答案 1 :(得分:2)

使用1 Gig应该没问题。以下是有关.net对象可以使用的最大内存量的问题的链接:

.NET Max Memory Use 2GB even for x64 Assemblies

答案 2 :(得分:2)

很难判断内存使用是否有问题。

我会尝试回答几个问题:

  • 预计会有这些数字吗?
  • 你知道记忆的所在吗?
  • 如果这些数字是正确的,那么您的解决方案在内存方面是否可扩展?
  • 如果任何初始条件发生变化,内存分配是否保持不变?
  • 您的服务器/客户端硬件可以提供所有内存吗?如果你有多次执行怎么办?

如果你在任何答案中找到'否',我会开始认为这是一个问题。 1 GB问题也是如此。

编辑:修正了一些拼写错误

答案 3 :(得分:2)

你不会遇到任何穿越1GB的问题。

但是,如果您的应用程序直接针对x86,或者在32位Windows上运行,则会遇到1.2-1.6GB之间的问题。 .NET应用程序作为32位应用程序运行时,往往会在此范围内开始接收内存不足错误(而不是2GB,这是您通常所期望的)。

话虽这么说,如果你的应用程序有充分的理由使用那么多内存,并且一直保持在1GB以下,那么这应该没有问题。