限制.Net CLR内存使用情况

时间:2010-12-02 23:24:13

标签: .net clr memory-management

好的,这就是问题所在。在我们的生产环境(ASP.Net)中,我们的服务器拥有大量内存以及大量用户/会话。我的电脑有8场演出,我是唯一的用户。在制作中,我们(很少)获得System.OutOfMemoryException

有了这些背景信息,这里有一个问题:是否有可能让CLR认为我只有一个或更少的内存? IIRC,有一个命令行选项来为Java执行此操作。

另一种选择是制作一些非常大的对象来填充内存以模拟低内存条件。但这需要修改程序集,巨大的对象可能会被缓存到磁盘。

建议?还是其他选择?

2 个答案:

答案 0 :(得分:4)

模拟较低内存/资源系统的一种方法是创建system virtual machine并分配您希望它具有的特定内存量。 VMWare和MS虚拟机都具有此功能。

除了模拟资源较少的机器之外,VM也是管理测试环境的好方法。

答案 1 :(得分:1)

您的程序是否收到OutOfMemoryException与计算机上的RAM数量无关。 OutOfMemoryException表示进程已耗尽虚拟内存,对于每个独立于物理RAM的进程都是相同的

有一些项目会影响流程中的虚拟内存量

  • 32 vs 64 bit进程
  • 切换/ / LargeAddressAware(Documentation

最好的猜测是服务器是64位进程,而客户端机器是32