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

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

记忆帽

任务pipe理器显示devenv.exe正在使用一点点多于500MB。 但是,我仍然有几乎1GB的可用RAM。

这是一些记忆帽吗? 如果是的话,有没有办法增加呢? 这可能是一个错误 ,但也许有一个解决方法?

这篇文章解释说,问题是您的机器上的每个应用程序将分配4GB的地址空间 – 分配给应用程序的2GB和分配给所有应用程序共享的内核的共享2GB空间。

地址空间只在连续的块中分配,所以如果你需要1mb的空间,它需要为你find一个连续的1mb空间(而不是2,500kb的空间)。 当你使用这个空间的时候,它会变得碎片化,最终你可能会发现没有足够的连续空间来满足你的需求 – 这暗示着这个空间比你的应用空间更有可能在内核空间中。

你的碎片错误很可能是因为某些东西需要一个连续的地址空间,这个空间大于可用的最大块。

解决方法:呃…我没有知道,或者我已经读过。 你真的需要尝试找出罪魁祸首。 如果是第三方应用程序,请不要使用它 – 如果是您的应用程序,请确保在使用空间时使用较小的块,并确保没有任何泄漏。

不是很有帮助,我意识到…

另一篇有用的文章

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

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