代码之家  ›  专栏  ›  技术社区  ›  Lasse V. Karlsen

沙堡和纪念馆除外

  •  1
  • Lasse V. Karlsen  · 技术社区  · 15 年前

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

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

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

    1 回复  |  直到 15 年前
        1
  •  1
  •   Brian Rasmussen    15 年前

    如果您使用的是32位Windows,那么您的用户进程默认只能处理2 GB内存(3 GB作为大地址感知运行)。2GB用于处理过程中的所有内容,因此.NET运行时、标准库、预订等都需要他们的处理。根据我的经验,32位上的.NET应用程序只剩下1.5 GB。

    您可以通过使用大地址感知开关来访问更多的内存,但是如果您使用的是32位Windows,它就不会免费提供。移动到64位窗口将允许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