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

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

Linda Hamilton
发布: 2025-01-04 01:39:39
原创
826 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板