我在 xna 中有一个程序,我正在加载 2gb+ 的数据(这不是问题,它的意思是)。它在任何低于 1.7gb 的情况下都可以正常工作,但一旦超过它就会抛出这个。
“内存不足,无法继续执行程序。”
或者我有其他时间
“内存不足,无法继续执行程序。”
我有 8gb 的内存,我的 GPU 有 2gb。我的系统肯定没有内存不足,因为我可以加载其他内存使用率非常高的程序,它仍然会以 1.7gb 结束。有解决办法吗?
您是否将所有数据存储在一个对象中?您可能会遇到 CLR 限制。
查看这篇文章:CLR 对象大小限制
1)它最有可能运行 32 位(您可以运行 taskmgr 并能够分辨)
2) 即使有足够的空闲内存来满足请求,也可能没有足够的连续空闲内存。当您开始耗尽进程的虚拟内存空间时,内存碎片成为一个问题。
有一篇好文章包含这些(和其他)问题:
请参阅蒂姆对此答案的评论。我观察到了同样的限制。由于 Windows 上的 XNA 仅限于 32 位进程,因此加载这么多数据 (2gb) 几乎是不可能的。