当我的C#应用程序的内存使用量超过1.3 GB时,我会在该应用程序中收到内存不足异常.

我在一台有3GB内存的32位机器上也遇到了同样的问题,这在当时是有道理的.但现在,我使用高端主板和高端RAM将硬件升级为一台64位机器,内存为16GB,但在1.3GB之后仍然会出现内存不足异常!

我知道没有超过2 GB的单个对象,而且1.3无论如何都小于2 GB,所以单个对象的内置MS2 GB限制不太可能成为问题.

当应用程序达到特定的内存使用阈值时,似乎有某种Windows终止switch .那么应该有一种方法来配置它.可能在登记处吗?

如有任何帮助,我们将不胜感激!

推荐答案

在您 Select 相同的目标体系 struct 之前,没有任何区别.I suppose在这两种情况下,您都是为32位体系 struct 编译的.

值得一提的是,如果在32位和64位的体系 struct 上,CLR(比如List<T>)中的单个集合分配了2GB个内存,那么OutOfMemoryException也可以提高.

为了能够从64位体系 struct 的内存优势中获益,您必须将您的代码定位于64位体系 struct .之后,自然地,二进制文件将在64位上运行only,但将受益于RAM中有更多可用空间的可能性.

.net相关问答推荐

使用PowerShell在Windows容器内安装exe

.NET模拟具有泛型返回类型的方法

等待时 Blazor 服务器按钮刷新

在接口内部声明 IEnumerable 而在具体类中声明 IList

判断内部异常的最佳方法?

在生产中使用实体框架(代码优先)迁移

如何从控制台应用程序中的 Task.WaitAll() 获取返回值?

在 web api 控制器(.net 核心)中使用 async/await 或任务

.NET 等价于旧的 vb left(string, length) 函数

无法加载文件或程序集'System.ComponentModel.Annotations,版本 = 4.1.0.0

在 JavaScript 中使用 String.Format?

如何使用 Android 使用 WCF 服务

将记录器作为单身人士是一个好习惯吗?

ToLowerInvariant() 有什么问题?

强制 XmlSerializer 将 DateTime 序列化为 'YYYY-MM-DD hh:mm:ss'

DateTime.Compare 如何判断日期是否小于 30 天?

MemoryCache 不遵守配置中的内存限制

如果锁定的对象内部发生异常,它会保持锁定状态吗?

ConfigurationManager.AppSettings - 如何修改和保存?

有没有一种简单的方法来判断 .NET Framework 版本?