gpt4 book ai didi

.net - OutOfMemoryException/ERROR_COMMITMENT_LIMIT 系统中有大量空闲内存

转载 作者:可可西里 更新时间:2023-11-01 12:05:23 31 4
gpt4 key购买 nike

我在集群上运行我的代码,我发现了一个我无法在本地复制的问题,并且看不到原因。

因此,程序开始在整个代码的随机位置虚假地抛出 OutOfMemoryException。

此外,看起来这可能与 Windows 本身的某些问题有关 - 其​​中一个异常表现为 Assembly.Load 操作的 HRESULT,HRESULT 为 0x800705AF,解码后表示错误 1455 ERROR_COMMITMENT_LIMIT(交换文件已用完)

程序实际占用内存非常小,32位,运行在.NET 4.0.30319下,服务器是Windows Server 2008,12核,24Gb RAM(几乎全部免费)和交换分区上有几十 GB 的可用硬盘空间。

我怎样才能完全调试这个错误的原因?使用什么诊断工具?

最佳答案

64 位进程在内存不足的情况下死亡的方式。仔细观察你所看到的来诊断这一点。您用完的是从不 RAM,它是虚拟内存空间。您必须查看 VM 大小或专用字节数等数字,任务管理器过于关注 RAM。

64 位进程具有巨大的虚拟内存空间,16 GB 或更高,具体取决于您运行的 Windows 版本。不可能完全用完它,机器在你靠近之前就死了。这当然是操作系统不允许发生的,因此是 ERROR_COMMITMENT_LIMIT。实际上,64 位进程受限于它可以在页面文件中保留的空间量。

使用像 SysInternals 的 Process Explorer 这样的工具再看一眼。当您确实看到虚拟内存大小无限制增长时的内存分析器。

关于.net - OutOfMemoryException/ERROR_COMMITMENT_LIMIT 系统中有大量空闲内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5419524/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com