在 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。