内存不足异常?虚拟地址范围不够:物理内存不足

时间:2010-10-29 19:22:49

标签: windows

程序何时会出现'内存不足异常'。是没有足够的虚拟地址范围还是因为没有足够的物理内存?

根据我的理解,只有在没有足够的虚拟地址可用时才会发生,因为可以通过分页未使用的部分来提供物理存储。

请澄清。

谢谢, 苏雷什。

3 个答案:

答案 0 :(得分:2)

如果您看到OutOfMemoryException,则可能是.Net应用程序。具有讽刺意味的是,您所描述的条件几乎永远是.Net中OutOfMemoryException的来源。

在大多数情况下,最好将OutOfMemoryException视为OutOfSomeCriticalResourceButNotRAMIronicallyEnoughException。或者甚至更糟:例如,当您尝试打开无效的图像文件时.Net会抛出OutOfMemoryException

答案 1 :(得分:1)

可用内存总量=物理(RAM)加页面文件。

如果两者都已满,则会在任何进一步的内存分配请求中获得异常。

在某些系统上,由于内核为自己预留了一部分物理RAM,所以进一步限定了这一点,因此用户模式程序可以竞争其余部分。

答案 2 :(得分:0)

当你的可寻址空间用完时,程序无法访问。这通常意味着虚拟地址范围,但如果你有足够的RAM,它将是物理内存。