1

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

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

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

4

1 回答 1

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

于 2009-07-20T08:52:13.013 回答