SandCastle和OutOfMemoryException

时间:2009-07-20 08:05:22

标签: out-of-memory sandcastle

SandCastle无法处理我们的类库,因为它在XSL转换期间因OutOfMemoryException异常而崩溃。

除了明显的,购买更多内存之外,我们能做些什么呢?问题是这是我们在32位操作系统上具有3.3GB内存的开发人员机器,所以基本上我们要么必须升级到64位和更多内存(这不会发生一段时间)或者设置虚拟服务器到这样做会占用大量内存(会影响生产服务器)。

我严重怀疑我们拥有世界上最大的需要帮助文件的类库,那么我们有什么选择?是否有一个神奇的“不要因内存不足而崩溃”设置,我们忘了关闭它?

1 个答案:

答案 0 :(得分:1)

如果您使用的是32位Windows,则您的用户进程每个默认值只能处理2 GB内存(3 GB作为大地址识别运行)。 2 GB用于该过程中的所有内容,因此.NET运行时,标准库,预订等都可以解决问题。根据我的经验,在32位上为.NET应用程序留下大约1.5 GB。

您可以使用大地址识别开关访问更多内存,但如果您使用的是32位Windows,则无法免费获得。迁移到64位Windows将使您的32位应用程序访问整个32位地址空间,从而为您提供4 GB可寻址空间。

我最近写了一篇博客文章,其中详细介绍了.NET应用程序的内存使用情况,但是由于我使用丹麦语进行博客,您可能无法阅读它。但是,如果您想看一下,链接是:http://kodehoved.dk/?p=156

您可能还会发现此MSDN博文相关:http://blogs.msdn.com/maoni/archive/2007/05/15/64-bit-vs-32-bit.aspx