希望这是发布此问题的正确堆栈交换网站... 感觉这不是 SO 的编程问题。无论如何,我正在运行 Visual Studio 2015,并收到 Windows 的通知,要求关闭 VS2015,因为它的内存不足。我有 24GB 的 RAM,昨天刚刚重启,所以我认为这里有些不对劲。我有时会使用 C# 交互窗口和 python 2.7 交互窗口,但在收到此消息时这些窗口并未使用。
注意:在我写这篇文章的时候,我刚刚从 devenv.exe(vs2015 进程)收到一条“未知硬崩溃”消息。但标准收集器服务仍在运行,占用了 10.7GB。
有人知道标准收集器是什么吗?什么可能导致 RAM 使用率飙升?
注意:当我再次写作时,我刚刚注意到标准收集器服务在我的任务管理器中停止了,并且我已恢复所有 RAM。
更新:听起来这可能是 VS 团队在更新 1 中尝试修复的一个错误。我确实安装了更新 1,但也许我应该尝试在一些示例代码中重现它并将其发送给 VS 团队。崩溃的 devenv 实例目前也没有调试。(不过,还有另一个实例正在调试,您可以从任务管理器中的 .vshost.exe 扩展名中看到)
该 devenv 实例没有崩溃,实际上它现在仍在调试器中运行,没有问题。
答案1
收集器进程似乎与 Visual Studio 2015 中调试模式下运行的代码的检测/诊断有关。微软已承认此进程存在内存使用不受限制的问题,并表示,
我们已经研究了根本原因并做出了修复,将在 VS2015 Update 1 中提供
因此,请确保您获取最新的 Visual Studio 2015 更新。同时,为缓解此问题,请执行以下操作:
同时,如果您注意到该进程消耗了太多内存,则有两种方法可以恢复。最简单的方法是重新启动计算机。这将使一切恢复到新状态。您可以采取的另一项缓解内存消耗的方法是使用服务管理器 UI 停止 Visual Studio 标准收集器服务。服务名称为“VSStandardCollectorService140”。当您不使用 Visual Studio 进行调试时,可以安全地停止它。如果您在调试时停止服务(甚至在断点处停止),则在恢复调试目标进程后,“诊断工具”窗口将显示一条错误消息。
看着此链接,以上引文均出自此处。
此链接还包含有人在控制台应用程序中遇到此问题的代码示例。运行该示例代码以查看它是否会在您的系统上触发此问题可能是值得的。报告此问题的人还表示,这种情况会间歇性发生,但在 Visual Studio 调试模式下运行代码似乎是一个共同点。
微软可能已经解决了该问题的一些根本原因,但仍存在其他未解决的原因。
答案2
禁用该服务,它就不会再占用您的内存。
工具->选项->调试->常规,禁用“调试时启用诊断工具”。