Visual Studio 2015 C # umbenennen schrecklich langsam

9

Jedes Mal, wenn ich die Funktion C # Edit | Refactor | Rename verwende, ist das Anwenden der Änderungen schrecklich langsam - wie 30 Sekunden oder langsamer. Manchmal erscheint während dieser Aktion das Popup-Fenster "Updates".

Alles andere an der Maschine ist schnell und reaktionsschnell. Das C ++ - Äquivalent ist auch in Ordnung. Hat jemand anderes dieses Problem? Irgendeine Lösung?

BEARBEITEN:

Nach dem Vorschlag von magicandre1981 habe ich eine ETW-Ablaufverfolgung ausgeführt. Ich habe auch eine andere Instanz des VS-Debuggers an den von mir verwendeten angefügt, um zu sehen, ob das irgendwas interessantes ergeben hat.

Ich habe zwei interessante Dinge gefunden:

  1. Die Verlangsamung ist exponentiell - anfangs ist es schnell, aber zum zehnten Mal, das du benutzt hast, dauert es 10 Sekunden, zum 20. Mal dauert es eine Minute oder länger.

  2. In einer Delegate.Remove-Methode wird eine Ausnahme ausgelöst. (Speziell innerhalb von System.MulticastDelegate.RemoveImpl.) Ich vermute also, dass etwas angeschlossen und dann nie entfernt wird.

Grundsätzlich wird dieser Aufrufstack tausende Male getroffen:

mscorlib.dll!System.MulticastDelegate.DeleteFromInvocationList(object[] invocationList = {object[4096]}, int invocationCount = 3569, int deleteIndex, int deleteCount = 1) mscorlib.dll!System.MulticastDelegate.RemoveImpl(System.Delegate value) mscorlib.dll!System.Delegate.Remove(System.Delegate source, System.Delegate value) Microsoft.CodeAnalysis.EditorFeatures.dll!Microsoft.CodeAnalysis.Editor.Implementation.InlineRename.InlineRenameSession.OpenTextBufferManager.SpansChanged.remove(System.Action value = {Method = {System.Reflection.RuntimeMethodInfo}})

Sowohl der ETW-Trace als auch der einfache Bruch mit dem Debugger haben diesen Call-Stack getroffen.

Also ... mehr Informationen, aber ich habe noch nicht herausgefunden, warum.

EIN WEITERES EDITIEREN:

Und ich habe gerade getan, was ich hätte tun sollen: Deaktivieren Sie Erweiterungen, um zu sehen, ob es einen Unterschied macht. Sicherlich ging das Leistungsproblem weg. Ich beschränkte mich auf eine bestimmte Erweiterung - ich werde den Autor kontaktieren und sehen, ob sie es beheben können.

    
terriblememory 25.08.2015, 21:19
quelle

0 Antworten

Tags und Links