Was ist der Visual Studio Standard Collector-Prozess und warum werden 10 GB RAM verwendet?

21

Hoffentlich ist dies die richtige Stack-Exchange-Site zum Posten ... Hatte nicht das Gefühl, dass es eine Programmierfrage für SO war. Wie auch immer, ich verwende Visual Studio 2015 und erhalte eine Benachrichtigung von Windows zum Schließen von VS2015, da der Arbeitsspeicher knapp wird. Ich habe 24 GB RAM und habe erst gestern einen Neustart durchgeführt, also denke ich, dass hier etwas nicht stimmt. Ich verwende manchmal das interaktive C # -Fenster und das interaktive Python 2.7-Fenster, aber diese wurden zum Zeitpunkt dieser Nachricht nicht verwendet.

Hinweis: Während ich dies schreibe, wurde von devenv.exe (vs2015-Prozess) gerade die Meldung "Unbekannter schwerer Absturz" angezeigt. Der Standard Collector-Dienst wird jedoch weiterhin mit bis zu 10,7 GB ausgeführt.

Kennt jemand den Standard Collector? Und was könnte die RAM-Auslastung erhöhen?

Hinweis: Während ich wieder schreibe, ist mir gerade aufgefallen, dass der Standard Collector Service in meinem Task-Manager angehalten wurde und ich meinen gesamten Arbeitsspeicher wieder habe.

Große RAM-Auslastung durch einen Visual Studio-Prozess "Standard Collector"

Update: Es hört sich so an, als wäre dies ein Fehler, den das VS-Team in Update 1 zu beheben versucht hat. Ich habe definitiv Update 1 installiert, sollte aber versuchen, es in einem Beispielcode zu reproduzieren und an das VS-Team zu senden. Die abgestürzte devenv-Instanz debuggte derzeit ebenfalls nicht. (Obwohl es eine andere Instanz gibt, in der das Debuggen ausgeführt wird, wie Sie an der Erweiterung .vshost.exe im Task-Manager sehen können.)

Diese devenv-Instanz ist nicht abgestürzt und läuft jetzt im Debugger noch ohne Probleme.

Bildbeschreibung hier eingeben

C. Tewalt
quelle
Es befasst sich mit Diagnosetools. . Sie wissen, dass Chrome als 64-Bit-Prozess existiert, oder?
Ramhound
1
Dies ist ein bekannter Fehler und es wurde ein Update durchgeführt, das hier nach Informationen durchsucht wird
arana
@ Arana, ich bin mit Update 1, die "sollte" das Update haben ...
C. Tewalt
1
@Ramhound Chrome ist für diese Frage nicht wirklich relevant. Oder teilen Sie freundlicherweise nur ein paar nützliche Informationen?
C. Tewalt

Antworten:

16

Der Collector-Prozess scheint im Zusammenhang mit der Instrumentierung / Diagnose von Code zu stehen, der im Debug-Modus in Visual Studio 2015 ausgeführt wird. Microsoft hat ein Problem mit der unbegrenzten Speichernutzung dieses Prozesses erkannt und erklärt: "Wir haben die Grundursache untersucht und festgestellt hat eine Korrektur vorgenommen, die in VS2015 Update 1 bereitgestellt wird. "

Stellen Sie also sicher, dass Sie das neueste Update für Visual Studio 2015 erhalten. Zur Milderung in der Zwischenzeit:

"Wenn Sie in der Zwischenzeit feststellen, dass der Prozess zu viel Speicher verbraucht, haben Sie zwei Möglichkeiten zur Wiederherstellung. Am einfachsten ist es, den Computer neu zu starten. Dadurch wird alles wieder in einen neuen Zustand versetzt. Sie können auch den Speicherverbrauch verringern." Beenden des Visual Studio Standard Collector-Dienstes über die Service Manager-Benutzeroberfläche. Der Name des Dienstes lautet "VSStandardCollectorService140". Er kann sicher beendet werden, wenn Sie nicht mit Visual Studio debuggen ), wird im Fenster "Diagnose-Tools" eine Fehlermeldung angezeigt, nachdem Sie den Debug-Zielprozess fortgesetzt haben. "

Schauen Sie sich diesen Link an, von dem aus die obigen Zitate stammen: https://connect.microsoft.com/VisualStudio/feedback/details/1630071/visual-studio-standard-collector-unbounded-memory-usage

Dieser Link enthält auch ein Codebeispiel für jemanden, der dies über eine Konsolen-App erlebt hat. Es könnte sich lohnen, diesen Beispielcode auszuführen, um festzustellen, ob das Problem auf Ihrem System ausgelöst wird. Die Person, die das Problem gemeldet hat, gab auch an, dass es zeitweise aufgetreten ist, aber die Ausführung des Codes im Visual Studio-Debugging-Modus schien der einzige allgemeine Thread zu sein.

Möglicherweise hat Microsoft einige der Hauptursachen des Problems behoben, aber es gibt noch weitere nicht behobene Ursachen, die jetzt auftauchen.

Entwickler63 - GoFund Monica
quelle
1
Eine einfache Möglichkeit (Windows 7 / Windows 10), die Benutzeroberfläche für Dienste aufzurufen, besteht darin, Start / Ausführen auszuführen, "services.msc" einzugeben und die Eingabetaste zu drücken. In der Liste der Dienste auf meinem Windows 7-Computer wird der Name, den ich für den genannten halte, als "Visual Studio Standard Collector Service" angezeigt.
Developer63 - GoFund Monica
Interessant, obwohl ich Update 1 installiert habe -> daher verwende ich das interaktive c # -Fenster (nur in Update 1 verfügbar). Interessant, dass der Beispielcode aus Ihrem Link, den der Typ reproduziert hat, Aufgaben verwendet. In meiner Anwendung werden Aufgaben und auch der asynchrone Code fair verwendet.
C. Tewalt
@matrixugly Wie ich das Problem verstehe, wird der Collector-Service im Grunde die ganze Zeit ausgeführt, wenn VS2015 ausgeführt wird, und sammelt App-Instrumentierungs- / Diagnoseinformationen. Was Sie also zu dem Zeitpunkt getan haben, als Windows die Warnung zu wenig Arbeitsspeicher ausgegeben hat, hat möglicherweise nichts mit dem Problem zu tun. Es könnte etwas viel früheres gewesen sein, bei dem der Collector-Service-Prozess nicht erkannte, dass er mit dem Löschen alter Instrumentendaten beginnen musste, den Speicher schrittweise füllte und die Nachricht Stunden später während einer nicht zusammenhängenden Aktivität auftauchte.
Developer63 - GoFund Monica
7
Ist noch in Update 3 RC vorhanden. :(
SayusiAndo
1
Ist das noch ein Problem für VS2017? Wenn ja, welche Konsequenzen hat die Deaktivierung dieses Dienstes?
Brötchen
2

Deaktivieren Sie den Dienst und er frisst Ihre Erinnerung nicht mehr.

Extras-> Optionen-> Debuggen-> Allgemein deaktivieren Sie "Diagnose-Tools beim Debuggen aktivieren".

Sumit Joshi
quelle
2
Sie sollten auch erwähnen, dass Sie keine Diagnosetools haben, die Teil der Debugging-Suite sind, die viele Leute verwenden.
Brötchen
1
Persönlich habe ich als Entwickler Diagnosetools immer deaktiviert, weil ich das Gefühl hatte, dass mein Computer seit dem ersten Mal viel langsamer geworden ist. Ich aktiviere es nur, wenn ich tatsächlich ein Leistungsproblem habe, das ich diagnostizieren muss (was ziemlich schwierig ist) selten), und dennoch gibt mir eine Profilerstellungssitzung in der Regel viel mehr Informationen. Ich bin ziemlich gespannt, wofür die Leute es regelmäßig benutzen würden.
Eduardo Wada