首页 >后端开发 >C++ >尽管有 16GB RAM,为什么我的 64 位 .NET 应用程序仍会抛出 OutOfMemoryException?

尽管有 16GB RAM,为什么我的 64 位 .NET 应用程序仍会抛出 OutOfMemoryException?

Linda Hamilton
Linda Hamilton原创
2025-01-04 01:39:39804浏览

Why Does My 64-Bit .NET App Throw an OutOfMemoryException Despite Having 16GB of RAM?

.NET 中的 OutOfMemoryException:64 位计算机上的内存使用量超过 1.3GB

尽管在 64 位计算机上安装了 16GB RAM ,应用程序在消耗大约 1.3GB 的内存后遇到 OutOfMemory 异常 记忆。尽管没有任何大小超过 2GB 的单个对象,此问题仍然存在。

原因在于编译目标架构。默认情况下,.NET 应用程序是针对 32 位体系结构进行编译的,这对每个对象的内存使用施加 2GB 的限制。即使在 64 位机器上,编译 32 位也会在相同程度上限制内存使用。

解决方案:

要解决此问题,请重新编译应用程序目标64 位架构。这将允许应用程序充分利用系统上可用的 16GB RAM。重新编译后,二进制文件将专门在 64 位机器上运行。

此外,需要注意的是,如果 CLR 中的单个集合(例如 List)分配 2GB 的内存,也可能会发生 OutOfMemoryException。 32 位和 64 位架构上的内存。

以上是尽管有 16GB RAM,为什么我的 64 位 .NET 应用程序仍会抛出 OutOfMemoryException?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn