在 Windows 7、3GB ram 机器上的 Visual Studio 2010 RTM 中进行复制/粘贴时,由于出现错误,我无法复制文本:
任务管理器显示 devenv.exe 正在使用超过 500MB。但是,我仍然有将近 1GB 的可用 RAM。
这是某种记忆上限吗?如果是这样,有没有办法增加它?这可能是一个错误,但也许有解决方法?
在 Windows 7、3GB ram 机器上的 Visual Studio 2010 RTM 中进行复制/粘贴时,由于出现错误,我无法复制文本:
任务管理器显示 devenv.exe 正在使用超过 500MB。但是,我仍然有将近 1GB 的可用 RAM。
这是某种记忆上限吗?如果是这样,有没有办法增加它?这可能是一个错误,但也许有解决方法?
本文解释了问题在于您机器上的每个应用程序将分配 4GB 的地址空间 - 分配给应用程序的 2GB 和分配给所有应用程序共享的内核的共享 2GB 空间。
地址空间只分配在连续的块中,所以如果你需要 1mb 的空间,它需要为你找到一个连续的 1mb 空间(而不是 2 500kb 空间)。当你使用这个空间时,它会变得支离破碎,最终你可能会发现没有足够的连续空间来满足你的需要——这表明这更有可能是在内核空间中而不是在你的应用程序空间中。
您的碎片错误可能是因为某些东西需要连续数量的地址空间,该地址空间大于可用的最大块。
解决方案:呃……我所知道的或我读过的都没有。您确实需要尝试找出罪魁祸首。如果是 3rd 方应用程序,请不要使用它 - 如果是您的应用程序,请确保在使用空间时以较小的块使用它,并确保没有任何泄漏。
不是很有帮助,我意识到...
另一个有用的文章...
此外,如果您在 VS2010 中打开了多个页面,请尝试关闭其中一些页面,然后最小化(而不是关闭)visual studio,然后重新最大化。一旦 VS 失去焦点,这将释放内存。
仅供参考,最小化技巧适用于我的应用程序,例如 Firefox 或 Outlook。