进程内存不足(但 RAM 仍然可用) - 如何增加进程内存上限?

进程内存不足(但 RAM 仍然可用) - 如何增加进程内存上限?

在 Windows 7、3GB RAM 机器上的 Visual Studio 2010 RTM 中进行复制/粘贴时,我无法复制文本,因为出现错误:

内存上限

任务管理器显示 devenv.exe 占用了 500 多 MB。不过我仍有近 1GB 的可用 RAM。

这是某种内存上限吗?如果是,有办法增加内存上限吗?这可能是一个错误,但也许有解决方法?

答案1

本文解释说,问题在于你机器上的每个应用程序都将分配 4GB 的地址空间 - 2GB 分配给应用程序,2GB 的共享空间分配给所有应用程序共享的内核。

地址空间仅以连续块的形式分配,因此如果您需要 1mb 的空间,它需要为您找到一个连续的 1mb 空间(而不是 2 个 500kb 的空间)。当您使用此空间时,它会变得碎片化,最终您可能会发现没有足够的连续空间满足您的需求 - 这暗示这更可能位于内核空间而不是您的应用空间中。

您的碎片错误可能是因为某些东西需要连续的地址空间,而该地址空间大于可用的最大块。

解决方案:呃……据我所知或所读到的均未找到。您确实需要尝试找出罪魁祸首。如果是第三方应用程序,请不要使用它 - 如果是您的应用程序,请确保在使用空间时将其分成较小的块,并确保没有任何泄漏。

我意识到这不是很有帮助...

另一篇有用的文章...

答案2

此外,如果您在 VS2010 中打开了多个页面,请尝试关闭其中一些页面,然后最小化(而不是关闭)Visual Studio,然后重新最大化。这将在 VS 失去焦点后释放内存。

仅供参考,最小化技巧适用于我的应用程序,例如 Firefox 或 Outlook。

相关内容