11

Mein Visual Studio (2010 SP1) weist einen schwerwiegenden Speicherverlust auf und scheint durch eine oder mehrere der installierten Erweiterungen verursacht zu werden.Wie finde ich heraus, welche Visual Studio-Erweiterung Speicherlecks verursacht?

Ich habe versucht, es einzuschränken, indem Erweiterungen und Add-Ons ein- und ausgeschaltet werden, aber es dauert eine Weile, ein erhebliches Leck aufzubauen, und die Ergebnisse sind nicht vollständig schlüssig. Es dauert selten mehr als ein paar Stunden, bevor der devenv.exe-Prozess 2 GB Speicher verwendet und mit dem Löschen beginnt, was mit der Arbeit ein wenig mühsam wird.

Gibt es eine Möglichkeit, VS Informationen über Speicher für Erweiterungen zu emittieren?

Werden verwaltete Erweiterungen in einer eigenen AppDomain ausgeführt? Vielleicht würde ich dadurch einige Leistungsindikatoren aktivieren, die dabei helfen könnten, das Problem zu lokalisieren.

Alles andere, was ich tun kann, um dies zu beheben, abgesehen von der Deaktivierung von Dingen nacheinander, bis das Problem verschwindet?

+0

Verwenden Sie irgendwelche Tools (z. B. jetbrains dotTrace, Scitech Speicherprofiler, .net clr Profiler), um das Problem zu isolieren? Es gibt eine gute Liste von ihnen hier http://stackoverflow.com/questions/3927/what-are-some-good-net-profilers – Maciej

+0

Ich habe Lizenzen für die RedGate und JetBrains Tools, aber sehe nicht wie Sie könnten sehr nützlich sein, wenn man bedenkt, dass es eine Stunde dauert, VS zu verwenden, damit das Speicherleck bis zu einem Punkt wächst, an dem Sie den Täter identifizieren können. Scitech könnte vielleicht etwas mit einem nativen Prozess wie Devenv machen, aber ich denke nicht, dass die Tools, die ich habe, sehr hilfreich wären. –

+0

Zur Klarstellung, ich glaube nicht, dass das Leck "immer vorhanden" ist. Etwas, das ich während der Entwicklung mache, scheint letztendlich das Problem auszulösen, und nach diesem Punkt fängt VS an, die Erinnerung ziemlich schnell zu essen. Wenn ich nach diesem Vorgang einen Profiler anhängen könnte, könnte dies tatsächlich ein nützliches Ergebnis liefern. –

Antwort

1

Nach der JetBrains faq page sollten Sie in der Lage sein, an einen bereits laufenden Prozess anzuhängen, wenn es beginnt, Speicherverlustprobleme anzuzeigen. Vielleicht kannst du das mal probieren. Beachten Sie, dass in der FAQ steht, dass Sie die Version 5 verwenden müssen.

+0

Ich hatte gehofft, dass jemand mir sagen würde, dass ich devenv nur mit einem/dumpMemoryStatsOnExit-Schalter oder so etwas laufen lasse, aber ich denke, ich muss sehen, was ein Profiler damit macht. Danke, aber immer noch offen für jede Option, die dies nicht zu einer dedizierten Aufgabe macht. –