什么是 Visual Studio Standard Collector 进程,为什么它使用 10GB 的 RAM?

C. *_*alt 34 memory windows visual-studio visual-studio-2015

希望这是发布的正确堆栈交换站点... 不觉得这是 SO 的编程问题。无论如何,我正在运行 Visual Studio 2015 并收到来自 Windows 的通知以关闭 VS2015,因为它的内存不足。我有 24GB 的 RAM 并且昨天刚刚重新启动,所以我认为这里有点不对劲。我有时会使用 C# 交互式窗口和 python 2.7 交互式窗口,但在此消息发布时这些窗口并未使用。

注意:在我写这篇文章时,我刚从 devenv.exe(vs2015 进程)收到一条“未知的硬崩溃”消息。但是标准收集器服务仍在运行,占用了 10.7GB。

有谁知道标准收藏家是什么?什么可能导致 RAM 使用量激增?

注意:再次在我写的时候,我刚刚注意到标准收集器服务在我的任务管理器中停止了,我的所有 RAM 都回来了。

Visual Studio“标准收集器”进程使用大量 RAM

更新:听起来这可能是 VS 团队试图在更新 1 中修复的错误。我肯定安装了更新 1,但也许我应该尝试在一些示例代码中重现并将其发送给 VS 团队。崩溃的 devenv 实例当前也没有进行调试。(不过,正如您可以通过任务管理器中的 .vshost.exe 扩展名看到的那样,还有另一个正在调试的实例)

该 devenv 实例没有崩溃,它实际上现在仍在调试器中运行,没有问题。

在此处输入图片说明

小智 18

收集器进程似乎与 Visual Studio 2015 中在调试模式下运行的代码的检测/诊断有关。Microsoft 已承认此进程的无限制内存使用存在问题,并表示,

我们已经研究了根本原因并进行了修复,将在 VS2015 Update 1 中提供

因此,请确保您获得最新的 Visual Studio 2015 更新。在此期间缓解:

同时,如果您注意到该进程消耗了太多内存,则有两种方法可以恢复。最简单的就是重启你的机器。这将使一切恢复到新鲜状态。另一个可以减轻内存消耗的方法是使用服务管理器 UI 停止 Visual Studio 标准收集器服务。服务的名称是“VSStandardCollectorService140”。当您不使用 Visual Studio 进行调试时,它可以安全地停止。如果您在调试时停止服务(甚至在断点处停止),则在您恢复调试目标进程后,“诊断工具”窗口将显示一条错误消息。

看看这个链接,上面引用的来源。

此链接还有一个代码示例,说明有人从控制台应用程序中遇到过这种情况。值得运行该示例代码以查看它是否会在您的系统上触发问题。报告问题的人也表示它是间歇性发生的,但在 Visual Studio 调试模式下运行代码似乎是一个常见线程。

可能 Microsoft 修复了该问题的一些根本原因,但现在仍有其他未修复的原因浮出水面。

  • 仍然存在于更新 3 RC 中。:( (7认同)

小智 11

禁用该服务,它不会再次占用您的内存。

工具->选项->调试->常规,禁用“调试时启用诊断工具”。

  • 你还应该提到你不会有诊断工具,这是很多人使用的调试套件的一部分。 (2认同)
  • 就我个人而言,作为一名开发人员,我总是禁用诊断工具,因为我觉得自从我第一次看到它以来,它使我的机器变慢了很多,并且只有在我确实有需要诊断的性能问题时才启用它(这是相当罕见),而且,分析会议通常会给我更多的信息。我很想知道人们会定期使用它做什么。 (2认同)