相关疑难解决方法(0)

ERROR_NOT_ENOUGH_MEMORY故障排除

我们的应用程序在一个特定用户的计算机上失败ERROR_NOT_ENOUGH_MEMORY("没有足够的存储空间来处理此命令").

这个错误显然是在我们正在使用的Delphi VCL框架内的某个地方引发的,所以我不确定哪个Windows API函数负责.

记忆是个问题吗? 致电GlobalMemoryStatus提供以下信息:

  • dwTotalPhys - 1063150000(~1 GB)
  • dwAvailPhys - 26735000(~27 MB)
  • dwAvailPage - 1489000000(~1.4 GB)

我觉得奇怪的是,当页面文件中有足够的空间可用时,Windows会让可用的物理内存变得如此之低,但我对Windows的虚拟内存管理知之甚少,以了解这是否正常.是吗?

如果不是内存,那么哪个资源限制被命中?从我在网上看到的,ERROR_NOT_ENOUGH_MEMORY可能是应用程序遇到几个限制(GDI对象,USER对象,句柄等)的结果,而不一定是内存.是否有一个全面的列表,列出了Windows强制执行的限制?有没有办法找出受到限制的限制?我试过谷歌,但我找不到任何系统的概述.

debugging memory-management out-of-memory

5
推荐指数
1
解决办法
7768
查看次数